Function at 0x40a0d8
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeb4
pushfd
push eax
sar eax, 0x18
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
pcmpeqw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
lea eax, [ebp - 0x146]
pushfd
push ecx
sar ecx, 2
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
pcmpgtd mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
mov dword [ebp - 0x14c], eax
pushfd
push eax
btr eax, 0x16
pop eax
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
fabs
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
push edi
pushfd
push ebx
shl ebx, 0xc
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
fxch st(1)
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
mov edi, dword [ebp - 0x14c]
pushfd
push edx
rcr edx, 0x1e
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
pushfd
push ecx
setg cl
pop ecx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
mov ecx, 0x13e
pushfd
push edx
btr edx, 0x14
pop edx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push ecx
push ebx
pushfd
cmovno ecx, ebx
popfd
pop ebx
pop ecx
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
xor al, al
rep stosb byte es:[edi], al
pop edi
pushfd
push esi
rcl esi, 0xf
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
fnclex
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
push dword [ebp + 8]
call fcn.00415ec0
pushfd
push ebx
btc ebx, 2
pop ebx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
mov dword [ebp - 8], eax
pushfd
push eax
btc eax, 0x14
pop eax
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push esi
call fcn.0040a65d
pop esi
jmp 0x40a203
push edi
pushfd
push ebx
btr ebx, 9
pop ebx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
pmulhw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThread
popfd
popal
mov edi, dword [ebp + 8]
pushfd
push ebx
ror ebx, 0x1f
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
pushfd
push ecx
setnp cl
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
add edi, dword [ebp - 8]
push 0x2a2e2a
pop dword [edi]
pushfd
push ecx
bts ecx, 0
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
push esi
call fcn.0040a65d
pop esi
jmp 0x40a276
pop edi
pushfd
push ecx
rcl ecx, 0x1c
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
push eax
push ebx
pushfd
cmovb eax, ebx
popfd
pop ebx
pop eax
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
push dword [ebp - 0x14c]
push dword [ebp + 8]
call dword [0x4219ff]
pushfd
push eax
bt eax, 6
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
wait
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
mov dword [ebp - 4], eax
pushfd
push ecx
shl ecx, 8
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
paddb mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
inc eax
pushfd
push eax
ror eax, 0xf
pop eax
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push ecx
push eax
pushfd
cmovge ecx, eax
popfd
pop eax
pop ecx
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcess
popfd
popal
je 0x40a639
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 8]
mov byte [edi + eax], 0
mov edx, dword [ebp - 0x14c]
lea edx, [edx + 0x2c]
cmp word [edx], 0x2e
je 0x40a5bb
cmp word [edx], 0x2e2e
je 0x40a5bb
pushal
mov ebx, edx
pushfd
push eax
btr eax, 0x11
pop eax
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
pushfd
std
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
push dword [ebp + 8]
call fcn.00415ec0
pushfd
push eax
ror eax, 1
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
pushfd
push ebx
setne bl
pop ebx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
add eax, dword [ebp + 8]
pushfd
push eax
ror eax, 0x13
pop eax
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push esi
call fcn.0040a65d
pop esi
jmp 0x40a39b
mov edi, eax
pushfd
push eax
bt eax, 0x15
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
push ecx
push esi
pushfd
cmovae ecx, esi
popfd
pop esi
pop ecx
pushal
pushfd
call sub.KERNEL32.DLL_GetLastError
popfd
popal
mov esi, ebx
lodsb al, byte [esi]
pushfd
push ebx
bt ebx, 7
pop ebx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
fsqrt
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
stosb byte es:[edi], al
pushfd
push eax
shl eax, 6
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentProcess
popal
popfd
psadbw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
or al, al
jne 0x40a3c0
pushfd
push ecx
bts ecx, 0x17
pop ecx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push esi
push edx
pushfd
cmovbe esi, edx
popfd
pop edx
pop esi
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
popal
pushfd
push ebx
rcr ebx, 0x1b
pop ebx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
pcmpeqw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
mov edx, dword [ebp - 0x14c]
lea edx, [edx]
pushfd
push ebx
rcr ebx, 0
pop ebx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
push esi
call fcn.0040a65d
pop esi
jmp 0x40a46c
test dword [edx], 0x10
pushfd
push ecx
ror ecx, 0x17
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
pushfd
push ebx
seta bl
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
je 0x40a5b3
pushal
pushfd
push edx
btr edx, 0xf
pop edx
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
pushfd
push ecx
setae cl
pop ecx
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
mov ebx, edx
pushfd
push edx
rcl edx, 0x1e
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
push esi
call fcn.0040a65d
pop esi
jmp 0x40a4e1
push dword [ebp + 8]
call fcn.00415ec0
add eax, dword [ebp + 8]
mov edi, eax
pushfd
push esi
sar esi, 7
pop esi
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
paddsb mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThread
popfd
popal
mov eax, 0x5c
stosw word es:[edi], ax
pushfd
push esi
bt esi, 0xd
pop esi
pushal
call sub.KERNEL32.DLL_GetCurrentProcessId
popal
popfd
push esi
call fcn.0040a65d
pop esi
jmp 0x40a53d
popal
pushfd
push eax
sar eax, 0xe
pop eax
pushal
call sub.KERNEL32.DLL_GetTickCount
popal
popfd
pushfd
clc
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a0d8
pushfd
push eax
btr eax, 0x19
pop eax
pushal
call sub.KERNEL32.DLL_GetCommandLineA
popal
popfd
mov edi, dword [ebp - 8]
pushfd
push ebx
shl ebx, 7
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
pushfd
push eax
setbe al
pop eax
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
mov eax, dword [ebp + 8]
mov byte [edi + eax], 0
pushfd
push edx
btc edx, 7
pop edx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
psadbw mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCommandLineA
popfd
popal
jmp 0x40a5bb
push dword [ebp + 8]
call fcn.00411ec8
pushfd
push edx
rcl edx, 0x1b
pop edx
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
punpckhdq mm0, mm1
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentThreadId
popfd
popal
push 2
call sub.KERNEL32.DLL_Sleep
push dword [ebp - 0x14c]
pushfd
push edx
shl edx, 3
pop edx
pushal
call sub.KERNEL32.DLL_GetLastError
popal
popfd
pushfd
push ecx
seto cl
pop ecx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
push dword [ebp - 4]
pushfd
push eax
bt eax, 1
pop eax
pushal
call sub.KERNEL32.DLL_GetCurrentThread
popal
popfd
push eax
push eax
pushfd
imul eax, eax
popfd
pop eax
pop eax
pushal
pushfd
call sub.KERNEL32.DLL_GetCurrentProcessId
popfd
popal
call dword [0x421a03]
test eax, eax
jne 0x40a303
push dword [ebp - 4]
call dword [0x421a07]
pushfd
push ebx
shl ebx, 0xa
pop ebx
pushal
call sub.KERNEL32.DLL_GetCurrentThreadId
popal
popfd
push edx
push edx
pushfd
xadd edx, edx
popfd
pop edx
pop edx
pushal
pushfd
call sub.KERNEL32.DLL_GetTickCount
popfd
popal
leave
ret 8