Function at 0x409fd0
Capabilities:
Create thread

Disassembly:
sub esp, 0x1c
fldz
push ebx
push ebp
xor ebp, ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x10], ebp
xor eax, eax
mov word [esp + 8], ax
fst dword [esp + 0x14]
fst dword [esp + 0xc]
push esi
fstp dword [esp + 0x20]
mov cx, word [esp + 0xc]
xor esi, esi
mov dword [0x4267ec], ebp
push edi
mov word [esp + 0x10], cx
lea ebx, [ebp + 1]
cmp dword [0x424ba0], ebp
je 0x40a057
mov edi, dword [sym.imp.KERNEL32.dll_CreateThread]
lea esp, [esp]
push ebp
push ebp
push esi
push 0x401520
push ebp
push ebp
mov dword [esi*4 + 0x426328], ebp
call edi
fld dword [0x422e68]
fld dword [0x422dfc]
add esi, ebx
fadd qword [0x41e9b0]
fsubp st(1)
fstp dword [0x422e68]
cmp esi, dword [0x424ba0]
jne 0x40a020
fld dword [0x423ad8]
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
fsub qword [0x41e9a8]
push 0xa
fstp dword [0x423ad8]
call edi
mov edx, dword [0x4220e0]
mov eax, dword [esp + 0x18]
lea ecx, [eax + edx - 0x1ad0e92f]
mov dword [esp + 0x18], ecx
fld dword [esp + 0x14]
fadd qword [0x41e368]
fstp dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x28], edx
fild dword [esp + 0x28]
fsub dword [esp + 0x14]
mov ax, word [esp + 0x10]
movsx ecx, ax
mov dword [esp + 0x28], ecx
fild dword [esp + 0x28]
faddp st(1)
call fcn.0040a9e0
mov word [esp + 0x10], ax
mov esi, 0x424ba4
jmp 0x40a0d0
movzx edx, word [esi]
mov eax, dword [edx*4 + 0x426328]
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x40a0f0
mov cx, word [0x423fc8]
fld dword [esp + 0x14]
mov dx, word [esp + 0x10]
add word [0x423fc8], bx
movsx eax, cx
movsx ecx, dx
add ecx, eax
mov dword [esp + 0x28], ecx
fild dword [esp + 0x28]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x40a13e
mov edx, dword [esp + 0x20]
add dword [esp + 0x20], ebx
mov eax, 0x67afb890
sub eax, edx
cmp eax, 0x976e2807
jge 0x40a13e
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x18], ecx
movzx edx, word [esi]
cmp dword [edx*4 + 0x426328], ebp
je 0x40a15e
push 0xa
call edi
fld dword [esp + 0x1c]
fmul qword [0x41e9a0]
fstp dword [esp + 0x1c]
jmp 0x40a0f0
fld qword [0x423f70]
fld1
fadd st(1), st(0)
fxch st(1)
fstp qword [0x423f70]
fld qword [0x423f70]
fadd qword [0x41e998]
fsub dword [esp + 0x14]
fcomp qword [0x41e990]
fnstsw ax
fld dword [esp + 0x14]
fadd st(1)
fstp dword [esp + 0x14]
test ah, 0x41
jne 0x40a1a5
mov eax, dword [0x423f80]
add eax, dword [esp + 0x18]
mov dword [0x423f80], eax
fld dword [esp + 0x14]
add esi, 2
fcomp qword [0x41e988]
fnstsw ax
fld dword [esp + 0x14]
fsub st(1)
fstp dword [esp + 0x14]
test ah, 0x44
jnp 0x40a1df
fsubr dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fsubr qword [0x41e980]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
jmp 0x40a1e1
fstp st(0)
cmp esi, 0x424bac
jne 0x40a0d0
fld dword [esp + 0x24]
fsub qword [0x41e978]
fstp dword [esp + 0x24]
call dword [0x4267ec]
bound esi, qword [edi + 0x66a3bd5e]
sal byte [edi + 0x6bd6cf25], 0x28
sal byte [edi + 0x6bd6cf25], 0x28
in eax, dx
xor ebp, dword [ebp - 0x1a]
or al, byte [ecx - 0x12]
rcr dword [eax - 0x4a295008], cl
and al, 0xf
enter 0x4a25, 0xffffffffffffffdf
and dl, byte [esi + 0x4ca5b77d]
mov bh, 0xa5
dec esp
xor word [edx], 0x18
imul ebx, dword [ecx], 0xfffffff6
test dword [ebp - 0x2c], ebp
pushal
lodsd eax, dword [esi]
out dx, al
mov dl, 0x9e
xchg byte [edi + 0xf020981], ch
cwde
int1
test edi, ebx
adc al, 0x7a
stosb byte es:[edi], al
mov bh, 0x52
pop ss
add byte [ebx + 0x195c9ff1], 0x20
jge 0x40a224
dec eax
cli
loopne 0x40a206
cld
xor bh, ch
and dword [esi - 0x7467e838], 0x9d147f0b
adc esp, 0xbaa21652
int1
push ebx
push edi
and cl, dh
lea ebp, [edx]
dec eax
and cl, ch
sti
cld
dec eax
cmp eax, 0xb47ca661
fimul word [ebx - 0x62d6a49a]
jmp fcn.0040a2b8