Function at 0x409f10
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
fldz
xor eax, eax
mov word [esp + 8], ax
fst dword [esp + 4]
fldz
mov dword [0x42792c], eax
fst qword [esp + 0x1c]
push ebx
fst qword [esp + 0x18]
push esi
fxch st(1)
xor esi, esi
fstp dword [esp + 0x14]
push edi
fstp qword [esp + 0x30]
fld dword [0x4242a8]
fadd dword [esp + 0x18]
fsub dword [0x424ca8]
fadd dword [0x423748]
fstp dword [0x423748]
fld dword [0x424ca8]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [0x424ca8]
fld dword [0x4242a8]
fsub st(1)
fstp dword [0x4242a8]
cmp dword [0x4247e0], eax
je 0x40a049
mov edi, dword [sym.imp.KERNEL32.dll_CreateThread]
fld dword [0x41f9e0]
mov dword [esi*4 + 0x427468], 0
fstp dword [0x423220]
fsubr qword [esp + 0x28]
fstp qword [esp + 0x28]
fld qword [esp + 0x28]
mov cx, word [0x424b70]
fadd qword [0x41f9d8]
movsx edx, cx
mov dword [esp + 0x1c], edx
fsub qword [0x41f9d0]
fild dword [esp + 0x1c]
faddp st(1)
call fcn.0040ab70
push 0
push 0
push esi
push 0x4015a0
push 0
mov word [0x424b70], ax
push 0
call edi
fld dword [esp + 0x10]
fadd dword [esp + 0x10]
fcomp qword [0x41f9c8]
fnstsw ax
fld dword [esp + 0x10]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x10]
test ah, 0x44
jnp 0x40a02e
fld qword [esp + 0x28]
fadd st(1)
fstp qword [esp + 0x28]
fld qword [esp + 0x28]
mov ax, word [esp + 0x14]
fstp st(0)
fld dword [esp + 0x10]
fstp st(0)
fld dword [0x423290]
inc esi
fmul qword [esp + 0x20]
fstp qword [esp + 0x20]
cmp esi, dword [0x4247e0]
jne 0x409f92
fld qword [esp + 0x20]
or esi, 0xffffffff
fld dword [0x426030]
fcompp
fnstsw ax
fld qword [esp + 0x20]
fadd st(1)
fstp qword [esp + 0x20]
test ah, 0x41
jp 0x40a09e
fld dword [esp + 0x10]
fsub st(1)
fstp dword [esp + 0x10]
mov cx, word [0x423734]
movsx edx, cx
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x10]
fsubr dword [esp + 0x1c]
call fcn.0040ab70
mov word [0x423734], ax
jmp 0x40a0ff
fld qword [esp + 0x30]
fsubr qword [0x41f9c0]
fsub dword [0x424c78]
fld dword [0x423220]
fadd qword [0x41f9b8]
fsub qword [0x41f9b0]
fcompp
fnstsw ax
fld dword [0x423220]
fadd st(1)
fstp dword [0x423220]
fld qword [esp + 0x30]
fadd st(1)
fstp qword [esp + 0x30]
test ah, 5
jp 0x40a0ff
inc word [0x4236f8]
fld dword [0x425294]
mov ax, word [0x4236f8]
fstp st(0)
mov cx, word [esp + 0x14]
add dword [esp + 0x14], esi
fld dword [0x4230d0]
fld dword [esp + 0x10]
fsubr qword [0x41f9a8]
fsubp st(1)
fstp dword [0x4230d0]
fld qword [esp + 0x20]
fsub st(1)
fstp qword [esp + 0x20]
fld qword [esp + 0x20]
fmul dword [esp + 0x10]
fstp dword [esp + 0x10]
fld qword [esp + 0x20]
fmul qword [esp + 0x28]
fstp qword [esp + 0x20]
fld qword [esp + 0x28]
fsub st(1)
fstp qword [esp + 0x28]
mov dx, word [esp + 0x14]
movsx eax, dx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fadd qword [esp + 0x30]
call fcn.0040ab70
mov word [esp + 0x14], ax
add word [0x424cb0], si
mov cx, word [0x424cb0]
movsx edx, cx
add edx, 0x4874238d
cmp edx, 0xd7fdc42
jl 0x40a19a
mov eax, dword [0x423780]
sub eax, 0x8bc53a
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul qword [esp + 0x28]
fstp qword [esp + 0x28]
fld qword [esp + 0x28]
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
fld qword [esp + 0x28]
push 0xa
fsub qword [0x424868]
fsub qword [0x41f9a0]
fsubp st(1)
fstp qword [esp + 0x2c]
fld qword [0x424868]
fadd st(1)
fstp qword [0x424868]
fsubr qword [esp + 0x2c]
fstp qword [esp + 0x2c]
call edi
mov cx, word [0x423128]
movsx edx, cx
add edx, 0x4820faab
cmp edx, 0x54561d52
jg 0x40a1f6
add dword [0x424cb4], 0x239532f2
fld dword [esp + 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_SetEvent]
fld qword [esp + 0x20]
mov esi, 0x4247e4
fsub qword [0x41f998]
fsub dword [esp + 0x10]
fsubp st(1)
fstp dword [esp + 0x10]
fld qword [esp + 0x20]
fsub qword [0x41f340]
fstp qword [esp + 0x20]
jmp 0x40a230
movzx eax, word [esi]
mov ecx, dword [eax*4 + 0x427468]
push ecx
call ebx
movzx edx, word [esi]
cmp dword [edx*4 + 0x427468], 0
je 0x40a2e0
mov edi, edi
fld qword [0x424b68]
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [0x424b68]
fld qword [0x4242c0]
fadd qword [0x41f990]
fld qword [esp + 0x30]
fadd qword [0x41f988]
fld qword [0x424b68]
fsubp st(2)
fcompp
fnstsw ax
test ah, 5
jp 0x40a2bf
mov ax, word [esp + 0x14]
movsx ecx, ax
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
fld dword [0x4248c8]
fadd qword [0x41f980]
fsubp st(1)
call fcn.0040ab70
mov word [esp + 0x14], ax
fadd dword [0x4248c8]
fstp dword [0x4248c8]
jmp 0x40a2cb
fstp st(0)
fld qword [0x41f978]
fstp qword [esp + 0x20]
push 0xa
call edi
movzx edx, word [esi]
cmp dword [edx*4 + 0x427468], 0
jne 0x40a250
fld dword [esp + 0x10]
add esi, 2
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp qword [0x425fc0]
fld qword [0x425fc0]
fsub st(1)
fstp qword [0x425fc0]
fld dword [esp + 0x18]
fsub st(1)
fstp dword [esp + 0x18]
fld qword [0x425fc0]
fld dword [esp + 0x18]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x40a361
fld dword [0x42365c]
mov eax, dword [0x424c44]
fsub qword [0x41f970]
mov dword [esp + 0x1c], eax
fsub qword [0x41f968]
fild dword [esp + 0x1c]
fmulp st(1)
call fcn.0040ab70
mov dword [0x424c44], eax
fld dword [0x42365c]
fsub st(1)
fstp dword [0x42365c]
sbb eax, 0x42365c
jmp 0x40a369
fld qword [esp + 0x30]
fstp dword [esp + 0x18]
fld dword [esp + 0x10]
fld qword [esp + 0x20]
fsub qword [0x41f998]
fsub dword [esp + 0x10]
fsubp st(1)
fstp dword [esp + 0x10]
fsubr qword [esp + 0x20]
fstp qword [esp + 0x20]
cmp esi, 0x4247ec
jne 0x40a230
call dword [0x42792c]
jne 0x40a35a
sub dword [edx + 0x2c7bec3c], ecx
sahf
pop ebx
or esp, dword [esi - 0x7422813c]
invalid