Function at 0x40a690
Capabilities:
Create thread

Disassembly:
sub esp, 0x18
fldz
push ebx
xor eax, eax
mov word [esp + 4], ax
push ebp
xor ecx, ecx
mov word [esp + 0x10], cx
fst dword [esp + 0x1c]
xor ebp, ebp
mov dword [esp + 0x1c], ebp
fst dword [esp + 0x14]
fstp dword [esp + 0xc]
mov dx, word [0x424860]
movsx eax, dx
mov dword [esp + 0x18], eax
push esi
xor esi, esi
fild dword [esp + 0x1c]
mov dword [0x4278ec], ebp
push edi
fmul qword [0x425dc8]
fstp qword [0x425dc8]
cmp dword [0x425d80], ebp
je 0x40a7ac
mov edi, dword [sym.imp.KERNEL32.dll_CreateThread]
mov ebx, 1
jmp 0x40a700
add dword [0x4231c4], ebx
fld dword [esp + 0x1c]
mov ecx, dword [0x4231c4]
sub ecx, 0x549c1549
mov dword [esp + 0x20], ecx
fisub dword [esp + 0x20]
push ebp
push ebp
push esi
push 0x401640
mov dword [esi*4 + 0x427428], ebp
push ebp
push ebp
fstp dword [esp + 0x34]
movzx edx, word [0x423918]
movzx ecx, word [esp + 0x28]
movsx eax, dx
movzx edx, word [esp + 0x30]
sub ecx, eax
imul ecx, edx
mov word [esp + 0x30], cx
dec word [0x423918]
call edi
fld dword [esp + 0x14]
mov ax, word [esp + 0x18]
fsubr qword [0x41fa48]
movsx ecx, ax
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
faddp st(1)
call fcn.0040b210
mov word [esp + 0x18], ax
movzx edx, word [0x424860]
movsx eax, dx
mov dword [esp + 0x20], eax
add esi, ebx
fild dword [esp + 0x20]
fmul qword [0x425dc8]
fstp qword [0x425dc8]
cmp esi, dword [0x425d80]
jne 0x40a700
fld dword [esp + 0x14]
fcomp qword [0x41fa40]
fnstsw ax
fld dword [esp + 0x14]
fadd qword [0x41f348]
fstp dword [esp + 0x14]
test ah, 0x44
jnp 0x40a7ea
fld dword [esp + 0x14]
mov cx, word [esp + 0x10]
movsx edx, cx
mov eax, 0x170be49a
sub eax, edx
mov dword [esp + 0x20], eax
fisub dword [esp + 0x20]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fsub qword [0x41fa38]
fsub qword [0x41fa30]
fcomp qword [0x41fa28]
fnstsw ax
test ah, 5
jp 0x40a811
fld dword [0x41fa20]
fstp dword [esp + 0x1c]
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xa
call edi
fld dword [esp + 0x14]
fadd qword [0x41fa18]
mov ebx, dword [sym.imp.KERNEL32.dll_SetEvent]
mov esi, 0x425d84
fadd qword [0x425e10]
fstp qword [0x425e10]
fld dword [esp + 0x14]
fsub qword [0x41f348]
fstp dword [esp + 0x14]
lea ebx, [ebx]
movzx ecx, word [esi]
mov edx, dword [ecx*4 + 0x427428]
push edx
call ebx
movzx eax, word [esi]
cmp dword [eax*4 + 0x427428], ebp
je 0x40a892
lea esp, [esp]
fld qword [0x424a60]
push 0xa
fsub qword [0x41fa10]
fstp qword [0x424a60]
call edi
movzx ecx, word [esi]
cmp dword [ecx*4 + 0x427428], ebp
jne 0x40a870
dec dword [esp + 0x18]
mov dx, word [esp + 0x18]
mov ecx, dword [0x4232f8]
movsx eax, dx
add eax, 0x3b4ae7ef
imul eax, ecx
add esi, 2
mov dword [0x4232f8], eax
cmp esi, 0x425d8c
jne 0x40a850
fld qword [0x423170]
mov edx, dword [esp + 0x24]
fsub qword [0x41fa08]
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
pop edi
pop esi
pop ebp
faddp st(1)
pop ebx
fcomp qword [0x41fa00]
fnstsw ax
fld qword [0x423170]
fadd qword [0x41f348]
fstp qword [0x423170]
sbb eax, 0x423170
test ah, 5
jp 0x40a91b
mov ax, word [0x42491c]
movsx ecx, ax
mov edx, 0x37f9dbf
sub edx, ecx
cmp edx, 0x7118779d
jne 0x40a91b
or bl, cl
add eax, 0x41f9f8
fld dword [0x41f9f8]
fstp dword [esp + 0xc]
call dword [0x4278ec]
mov dword [edx - 0x3000dbbe], edi
dec esi
jnp 0x40a957
imul edx, dword [ecx + 0x10409f0d], 0xd0ffe65e
ja 0x40a973
sal byte [edi + 0x3d], 1
bound esi, qword [eax]
jecxz 0x40a8ef
pop edi
inc eax
sub dword [ebx], ebx
imul edi, dword [eax + 0x4c], 0x7ee4d196
mov dh, 0x33
stosb byte es:[edi], al
out 0xe7, eax
je 0x40a959
stosd dword es:[edi], eax
clc
mov ebp, 0x5aee0d5e
ja 0x40a933
mov ah, 0xe3
mov bh, 0x64
push ebx
jecxz 0x40a910
push ebx
sub dword [ebx], eax
inc ebp
dec ebx
dec esp
invalid
fisubr word [edx - 0x79]
sbb eax, 0xc14cedb7
add ebp, dword [esi]
adc al, 6
fxch st(7)
fistp word [ebp + 0x3dc4bf34]
inc edx
pop es
cmp dl, byte [eax + 0x45badb79]
mov ch, 4
outsd dx, dword [esi]
push 0xffffffffffffff82
sbb ecx, 0xffffffed
cdq
mov ebp, 0x615c142e
iretd