Function at 0x409e40
Capabilities:
Create thread

Disassembly:
sub esp, 0x1c
fldz
push ebx
push ebp
xor ebp, ebp
mov dword [esp + 0xc], ebp
fst dword [esp + 0x10]
fldz
or ebx, 0xffffffff
fst qword [esp + 0x1c]
mov dword [0x4267cc], ebp
fstp qword [esp + 0x1c]
push esi
push edi
fstp dword [esp + 0x1c]
mov dword [esp + 0x10], ebp
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fadd qword [0x424e00]
add dword [esp + 0x10], ebx
fcomp qword [0x41e940]
fnstsw ax
test ah, 0x41
jp 0x409e99
add dword [esp + 0x10], 0x77e0f2f5
xor esi, esi
cmp dword [0x4245d8], ebp
je 0x409ecc
mov edi, dword [sym.imp.KERNEL32.dll_CreateThread]
lea esp, [esp]
push ebp
push ebp
push esi
push 0x402060
push ebp
push ebp
mov dword [esi*4 + 0x426308], ebp
call edi
inc esi
cmp esi, dword [0x4245d8]
jne 0x409eb0
fld dword [0x424004]
mov esi, 1
fld1
fadd st(1), st(0)
fxch st(1)
fstp dword [0x424004]
fld qword [0x4245f0]
fsub dword [0x424004]
fadd qword [0x41e938]
fmul dword [0x424d6c]
fstp dword [0x424d6c]
add dword [esp + 0x10], esi
fld qword [esp + 0x24]
fadd st(1)
fstp qword [esp + 0x24]
mov ecx, dword [esp + 0x10]
add ecx, 0x4f4206b9
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fsub qword [esp + 0x24]
fadd dword [0x423050]
fstp dword [0x423050]
fld qword [esp + 0x24]
fsub qword [0x41e930]
fstp qword [esp + 0x24]
fld dword [0x424d28]
fsub st(1)
fstp dword [0x424d28]
fld dword [0x424d28]
mov edx, dword [0x424058]
fadd qword [0x41e928]
mov dword [esp + 0x20], edx
fiadd dword [esp + 0x20]
fld dword [0x424c48]
fsub qword [0x41e920]
add dword [0x424058], ebx
fucompp
fnstsw ax
test ah, 0x44
jnp 0x409fa1
mov eax, dword [esp + 0x14]
mov ecx, 0xa1cb5ba7
sub ecx, eax
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fadd dword [0x42400c]
fstp dword [0x42400c]
fld dword [esp + 0x18]
mov ecx, 0x597c8df6
fadd qword [0x41e918]
fadd qword [0x424048]
mov dx, word [0x4223f8]
add word [0x4223f8], si
movsx eax, dx
sub ecx, eax
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x40a022
fsubr qword [0x424b60]
fstp qword [0x424b60]
fld qword [0x424b60]
mov dx, word [0x422f7c]
fsub qword [0x41e910]
mov ecx, dword [0x424a80]
movsx eax, dx
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
mov dword [esp + 0x20], ecx
fsubp st(1)
fild dword [esp + 0x20]
faddp st(1)
call fcn.0040abf0
mov dword [0x424a80], eax
jmp 0x40a030
fstp st(0)
fld dword [0x41e908]
fstp dword [0x424d38]
fld qword [0x424ba8]
mov edx, dword [esp + 0x10]
fsub qword [0x41e900]
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
push 0xa
faddp st(1)
fstp qword [esp + 0x28]
add dword [esp + 0x14], esi
call edi
add dword [esp + 0x10], esi
fld qword [esp + 0x24]
fadd qword [0x41e348]
mov edx, 0xdb876b94
mov esi, 0x4245dc
fstp qword [esp + 0x24]
mov eax, dword [esp + 0x10]
add eax, 0x4f4206b9
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fsub qword [esp + 0x24]
fadd dword [0x423050]
fstp dword [0x423050]
mov ecx, dword [0x424dac]
sub edx, ecx
mov dword [esp + 0x14], edx
add dword [0x424dac], ebx
jmp 0x40a0b0
movzx eax, word [esi]
mov ecx, dword [eax*4 + 0x426308]
push ecx
call dword [sym.imp.KERNEL32.dll_SetEvent]
movzx edx, word [esi]
cmp dword [edx*4 + 0x426308], ebp
je 0x40a103
lea ecx, [ecx]
add dword [esp + 0x10], ebx
mov ax, word [0x424aac]
mov ecx, dword [0x424bcc]
mov edx, dword [esp + 0x10]
cwde
add eax, ecx
lea eax, [edx + eax + 0x35859d84]
push 0xa
mov dword [0x424bcc], eax
call edi
movzx ecx, word [esi]
cmp dword [ecx*4 + 0x426308], ebp
jne 0x40a0d0
add dword [esp + 0x10], ebx
mov edx, dword [esp + 0x10]
mov eax, 0xdfed332d
sub eax, edx
add eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fld dword [esp + 0x18]
add dword [esp + 0x14], ebx
fsub qword [0x41e8f8]
fcompp
fnstsw ax
test ah, 1
jne 0x40a159
mov ecx, dword [0x424a0c]
sub ecx, 0x3fd96520
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
inc dword [0x424a0c]
jmp 0x40a17b
fld qword [0x422f88]
mov edx, dword [0x4221d8]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fsubp st(1)
fstp qword [0x422f88]
inc dword [0x4221d8]
mov ax, word [0x424054]
movsx ecx, ax
mov dword [esp + 0x20], ecx
add esi, 2
fild dword [esp + 0x20]
fld qword [0x4220a0]
fadd qword [0x41e8f0]
fsubp st(1)
call fcn.0040abf0
mov word [0x424054], ax
fld qword [0x4220a0]
fsub qword [0x41e348]
fstp qword [0x4220a0]
cmp esi, 0x4245e4
jne 0x40a0b0
mov edx, dword [esp + 0x14]
mov dword [esp + 0x14], edx
add dword [esp + 0x14], ebx
call dword [0x4267cc]
in al, 0x5e
add ah, ah
pop esi
cmp bh, ch
jge 0x40a255
xchg edi, eax
cmp esi, 0xffffffcf
jnp 0x40a21f
push edx
aas
sbb esp, dword gs:[esi + 0x70b5ea47]
sti
sub eax, 0x4e259284
add eax, 0x49ffca1b
lahf
cmp eax, 0x46e3cf27
dec ebx
pop es
js 0x40a27e
jge 0x40a21f
scasd eax, dword es:[edi]
mov cx, 0xeaf4
jmp 0x40a1d7
cmp edx, dword [esi]
add bh, byte [ebp - 0x3b]
fistp word [esi - 0x14423b46]
add eax, 0xda2dd07a
sbb al, byte [ebp + 0x5f04b5ce]
aas
sub bl, 0x21
invalid
int 0x82
mov byte [0x9999b78], al
std
jmp 0x62797e76
pop es
cmc
add byte [eax], al
add byte [edi + 0x5e], bl
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret 0x10