well like kayaker said this dll seems to be ok as far as running is considered 
yes it creates a thread 
it creates a file drm.ocx in c:\windows if you cheat a bit by providing bogus inputs to its GetWindowText Apis after it creates a socket to (device\afd) to some webcrap.......org yes it seems to be centered on internet explorer 
doesnt seem to have much of antidebugging  looks like straight  (borland embarcadero ?? ) code
uses a wtimer (timer proc)  to repeat its work and you need to cheat every time the callback is called 
set up some fake network blah blah and you should be able to run amok with this dll 
so what exactly are you struck at ???
btw its imagebase is 0x400000 so it clashes with Loaddll and gets relocated  
so i rebased it to 0x1000000 before running and trapping it  (so you know why my paste below contains address at 0x100....range also rebasing should 
help if you plan to use ida and dump a map from it for ollydbg)
below is a paste of some apis i saw it invoking before i quit playing with it
Code:
0006F514              008F0254  |FileName = "C:\WINDOWS\drm.ocx"
0006F518              00000002  \FileAttributes = HIDDEN
01002AF4  |.  6A >PUSH    0                              ; /hTemplateFile = NULL
01002AF6  |.  68 >PUSH    80                             ; |Attributes = NORMAL
01002AFB  |.  51  PUSH    ECX                            ; |Mode = 7C91003D
01002AFC  |.  6A >PUSH    0                              ; |pSecurity = NULL
01002AFE  |.  52  PUSH    EDX                            ; |ShareMode = 80608
01002AFF  |.  50  PUSH    EAX                            ; |Access = 100
01002B00  |.  8D4>LEA     EAX, DWORD PTR DS:[ESI+48]     ; |
01002B03  |.  50  PUSH    EAX                            ; |FileName = 00000100 ???
01002B04  |.  E8 >CALL    <rebased_.CreateFileA>         ; \CreateFileA
0006F4E8              0006F5BC  |FileName = "C:\WINDOWS\drm.ocx"
0006F4EC              C0000000  |Access = GENERIC_READ|GENERIC_WRITE
0006F4F0              00000001  |ShareMode = FILE_SHARE_READ
0006F4F4              00000000  |pSecurity = NULL
0006F4F8              00000003  |Mode = OPEN_EXISTING
0006F4FC              00000080  |Attributes = NORMAL
0006F500              00000000  \hTemplateFile = NULL
01002B24  |.  6A >PUSH    0                              ; /pFileSizeHigh = NULL
01002B26  |.  FF3>PUSH    DWORD PTR DS:[ESI]             ; |hFile = 00000100 (window)
01002B28  |.  E8 >CALL    <rebased_.GetFileSize>         ; \GetFileSize
0006F4FC              00000100  |hFile = 00000100 (window)
0006F500              00000000  \pFileSizeHigh = NULL
Handles, item 63
 Handle=00000100
 Type=File
 Refs=   2.
 Access=0012019F SYNCHRONIZE|READ_CONTROL|READ_DATA|WRITE_DATA|APPEND_DATA|READ_EA|WRITE_EA|READ_ATTRIBUTES|WRITE_ATT RIBUTES
 Name=c:\WINDOWS\drm.ocx
01002B3D >|> \6A >PUSH    0                              ; /Origin = FILE_BEGIN
01002B3F  |.  6A >PUSH    0                              ; |pOffsetHi = NULL
01002B41  |.  50  PUSH    EAX                            ; |OffsetLo = 0
01002B42  |.  FF3>PUSH    DWORD PTR DS:[ESI]             ; |hFile = 00000100 (window)
01002B44  |.  E8 >CALL    <rebased_.SetFilePointer>      ; \SetFilePointer
0006F4F4              00000100  |hFile = 00000100 (window)
0006F4F8              00000000  |OffsetLo = 0
0006F4FC              00000000  |pOffsetHi = NULL
0006F500              00000000  \Origin = FILE_BEGIN
01002B54  |.  6A >PUSH    0                              ; /pOverlapped = NULL
01002B56  |.  52  PUSH    EDX                            ; |pBytesRead = 0006F6C0
01002B57  |.  68 >PUSH    80                             ; |BytesToRead = 80 (128.)
01002B5C  |.  8D9>LEA     EDX, DWORD PTR DS:[ESI+14C]    ; |
01002B62  |.  52  PUSH    EDX                            ; |Buffer = 0006F6C0
01002B63  |.  FF3>PUSH    DWORD PTR DS:[ESI]             ; |hFile = 00000100 (window)
01002B65  |.  E8 >CALL    <rebased_.ReadFile>            ; \ReadFile
0006F4EC              00000100  |hFile = 00000100 (window)
0006F4F0              0006F6C0  |Buffer = 0006F6C0
0006F4F4              00000080  |BytesToRead = 80 (128.)
0006F4F8              0006F500  |pBytesRead = 0006F500
0006F4FC              00000000  \pOverlapped = NULL
01002A20 >|> \6A >PUSH    0                              ; /pOverlapped = NULL
01002A22  |.  8D4>LEA     EAX, DWORD PTR SS:[ESP+4]      ; |
01002A26  |.  50  PUSH    EAX                            ; |pBytesWritten = 00000100
01002A27  |.  56  PUSH    ESI                            ; |nBytesToWrite = 64 (100.)
01002A28  |.  8B4>MOV     EAX, DWORD PTR DS:[EBX+14]     ; |
01002A2B  |.  50  PUSH    EAX                            ; |Buffer = 00000100
01002A2C  |.  8B0>MOV     EAX, DWORD PTR DS:[EBX]        ; |
01002A2E  |.  50  PUSH    EAX                            ; |hFile = 00000100 (window)
01002A2F  |.  E8 >CALL    <rebased_.WriteFile>           ; \WriteFile
0006F4EC              00000100  |hFile = 00000100 (window)
0006F4F0              0006F6C0  |Buffer = 0006F6C0
0006F4F4              00000064  |nBytesToWrite = 64 (100.)
0006F4F8              0006F500  |pBytesWritten = 0006F500
0006F4FC              00000000  \pOverlapped = NULL
0006F6C0  5B 4F 6C 6C 79 44 62 67 20 2D 20 72 65 62 61 73  [OllyDbg - rebas
0006F6D0  65 64 5F 6D 61 6C 77 61 72 65 2E 64 6C 6C 20 2D  ed_malware.dll -
0006F6E0  20 5B 43 50 55 20 2D 20 6D 61 69 6E 20 74 68 72   [CPU - main thr
0006F6F0  65 61 64 2C 20 6D 6F 64 75 6C 65 20 72 65 62 61  ead, module reba
0006F700  73 65 64 5F 5D 5D 20 33 30 20 4A 75 6C 79 20 32  sed_]] 30 July 2
0006F710  30 31 32 2C 20 31 37 3A 34 31 0D 0A 5B 46 39 5D  012, 17:41..[F9]
0006F720  0D 0A 0D 0A 00 00 00 00 00 00 00 00 00 00 00 00  ................
0006F730  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
010086EB  |.  E8 >CALL    <rebased_.closesocket>                        ; \closesocket
0006F704      000000F0  \Socket = F0
Handles, item 59
 Handle=000000F0
 Type=File (pipe)
 Refs=   2.
 Access=001F01FF SYNCHRONIZE|WRITE_OWNER|WRITE_DAC|READ_CONTROL|DELETE|READ_DATA|WRITE_DATA|CREATE_PIPE_INSTANCE|READ _ATTRIBUTES|WRITE_ATTRIBUTES
 Name=\Device\Afd
010085BE  |.  6A >PUSH    0                                             ; /Protocol = IPPROTO_IP
010085C0  |.  6A >PUSH    1                                             ; |Type = SOCK_STREAM
010085C2  |.  6A >PUSH    2                                             ; |Family = AF_INET
010085C4  |.  E8 >CALL    <rebased_.socket>                             ; \socket
0006F6D0      00000002  |Family = AF_INET
0006F6D4      00000001  |Type = SOCK_STREAM
0006F6D8      00000000  \Protocol = IPPROTO_IP
01008098  |.  E8 >CALL    <rebased_.htons>                              ; \htons
0006F694      008F01BB  \NetShort = 8F01BB
010082C7  |.  50  PUSH    EAX                                           ; /Events = FD_CONNECT|FD_CLOSE|FD_QOS|FD_GROUP_QOS
010082C8  |.  56  PUSH    ESI                                           ; |Msg = 401
010082C9  |.  57  PUSH    EDI                                           ; |hWnd = 001A0106 (class='TPUtilWindow')
010082CA  |.  8B4>MOV     EAX, DWORD PTR DS:[EBX+4]                     ; |
010082CD  |.  50  PUSH    EAX                                           ; |Socket = F0
010082CE  |.  E8 >CALL    <rebased_.WSAAsyncSelect>                     ; \WSAAsyncSelect
0006F630      000000F0  |Socket = F0
0006F634      001A0106  |hWnd = 001A0106 (class='TPUtilWindow')
0006F638      00000401  |Msg = 401
0006F63C      00000033  \Events = FD_READ|FD_WRITE|FD_CONNECT|FD_CLOSE
01008396  |.  6A >PUSH    10                                            ; /AddrLen = 10 (16.)
01008398  |.  8D4>LEA     EAX, DWORD PTR DS:[EBX+18]                    ; |
0100839B  |.  50  PUSH    EAX                                           ; |pSockAddr = 000000F0
0100839C  |.  8B4>MOV     EAX, DWORD PTR DS:[EBX+4]                     ; |
0100839F  |.  50  PUSH    EAX                                           ; |Socket = F0
010083A0  |.  E8 >CALL    <rebased_.connect>                            ; \connect
0006F648      000000F0  |Socket = F0
0006F64C      008F018C  |pSockAddr = 008F018C
0006F650      00000010  \AddrLen = 10 (16.)
0102FE36 >|> /53  /PUSH    EBX                                                      ; /pMsg = WM_TIMER ID = 6C70 Callback = 102FCB8
0102FE37  |. |E8 >|CALL    <rebased_.TranslateMessage>                              ; \TranslateMessage
0102FE3C  |. |53  |PUSH    EBX                                                      ; /pMsg = WM_TIMER ID = 6C70 Callback = 102FCB8
0102FE3D  |. |E8 >|CALL    <rebased_.DispatchMessageA>                              ; \DispatchMessageA
0102FE42 >|> |6A > PUSH    0                                                        ; /MsgFilterMax = 0
0102FE44  |. |6A >|PUSH    0                                                        ; |MsgFilterMin = 0
0102FE46  |. |6A >|PUSH    0                                                        ; |hWnd = NULL
0102FE48  |. |53  |PUSH    EBX                                                      ; |pMsg = rebased_.0103D740
0102FE49  |. |E8 >|CALL    <rebased_.GetMessageA>                                   ; \GetMessageA
0102FE4E  |. |85C>|TEST    EAX, EAX
0102FE50  |.^\75 >\JNZ     SHORT <rebased_.loc_102FE36>