Function at 0x40aa30
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x28
fldz
xor eax, eax
mov word [esp + 0xc], ax
fst qword [esp + 0x18]
fst qword [esp + 0x20]
xor ecx, ecx
mov word [esp + 8], cx
fstp qword [esp + 0x10]
xor edx, edx
mov word [esp + 4], dx
mov ax, word [esp + 8]
movsx ecx, ax
sub ecx, 0x49f2bcb2
mov dword [esp + 4], ecx
push ebx
push ebp
fild dword [esp + 0xc]
xor ebp, ebp
mov dword [0x4278ec], ebp
push esi
fadd dword [0x425800]
xor esi, esi
push edi
fstp dword [0x425800]
fld qword [esp + 0x20]
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [esp + 0x20]
mov edx, dword [0x423ee0]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fadd qword [esp + 0x20]
fsub qword [esp + 0x20]
fcomp qword [0x41fa18]
fnstsw ax
test ah, 0x44
jnp 0x40aad1
fld qword [0x4246c8]
fmul qword [0x41fa10]
fstp qword [0x4246c8]
jmp 0x40ab0d
fld dword [0x425800]
fsub qword [0x4247a0]
fadd qword [esp + 0x30]
mov ax, word [0x423ec0]
movsx ecx, ax
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fmulp st(1)
call fcn.0040b550
mov word [0x423ec0], ax
fld qword [0x4247a0]
fsub st(1)
fstp qword [0x4247a0]
mov ebx, 1
cmp dword [0x4243c8], ebp
je 0x40ab41
mov edi, dword [sym.imp.KERNEL32.dll_CreateThread]
fstp st(0)
push ebp
push ebp
push esi
push 0x401620
push ebp
push ebp
mov dword [esi*4 + 0x427428], ebp
call edi
add esi, ebx
cmp esi, dword [0x4243c8]
jne 0x40ab22
fld1
fld qword [0x423e08]
mov eax, 0x1d20718f
fsubr qword [0x41fa08]
or esi, 0xffffffff
fadd qword [esp + 0x30]
mov edx, dword [0x424734]
sub eax, edx
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fcompp
fnstsw ax
fld qword [esp + 0x30]
fsub st(1)
fstp qword [esp + 0x30]
test ah, 0x41
jne 0x40abcf
mov ecx, dword [0x423dd0]
mov edx, 0x35be878c
sub edx, ecx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fld qword [esp + 0x20]
add dword [0x423dd0], ebx
fadd qword [0x41fa00]
fsub qword [0x41f9f8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x40abcf
fld qword [0x423158]
mov ax, word [esp + 0x18]
fstp st(0)
fadd qword [0x423158]
fstp qword [0x423158]
add dword [esp + 0x18], esi
jmp 0x40abd1
fstp st(0)
add dword [0x424624], ebx
add dword [esp + 0x1c], esi
mov cx, word [esp + 0x1c]
movsx edx, cx
add edx, dword [0x424624]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fadd qword [esp + 0x28]
fcomp qword [0x41f9f0]
fnstsw ax
test ah, 0x41
jne 0x40ac12
movzx eax, word [esp + 0x1c]
imul eax, eax, 0x5cebb6ed
mov word [esp + 0x1c], ax
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xa
call edi
fld qword [0x41f9e8]
fstp qword [0x423cc8]
mov cx, word [esp + 0x18]
add dword [esp + 0x18], esi
movsx edx, cx
cmp edx, 0x863eee64
je 0x40ac4a
fld qword [esp + 0x20]
fadd qword [0x41f9e0]
fstp qword [esp + 0x20]
fld qword [esp + 0x28]
mov ebp, dword [sym.imp.KERNEL32.dll_SetEvent]
fsub qword [0x41f9d8]
mov esi, 0x4243cc
fstp qword [esp + 0x28]
jmp 0x40ac70
mov ax, word [0x425924]
movsx ecx, ax
sub ecx, 0x57550c41
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fadd qword [0x425d60]
fld dword [0x423e50]
add word [0x425924], bx
fcompp
fnstsw ax
test ah, 5
jp 0x40acb3
movzx edx, word [esp + 0x18]
sub edx, 0x6636260b
mov word [esp + 0x18], dx
movzx eax, word [esi]
mov ecx, dword [eax*4 + 0x427428]
push ecx
call ebp
mov dx, word [0x423ec0]
movsx eax, dx
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fadd qword [esp + 0x28]
fadd dword [0x423190]
movzx ecx, word [esi]
cmp dword [ecx*4 + 0x427428], 0
fstp dword [0x423190]
je 0x40ad01
nop
push 0xa
call edi
movzx edx, word [esi]
cmp dword [edx*4 + 0x427428], 0
jne 0x40acf0
add word [0x423cbc], bx
mov ax, word [0x423cbc]
movzx ecx, word [0x4247f0]
cwde
sub ecx, eax
sub ecx, 0x3af2386e
mov word [0x4247f0], cx
add esi, 2
fld qword [0x424640]
fmul qword [0x41f9d0]
fstp qword [0x424640]
mov dx, word [esp + 0x1c]
movsx eax, dx
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [0x423158]
call fcn.0040b550
mov word [esp + 0x1c], ax
fld qword [esp + 0x28]
fsub qword [0x41f9d8]
fstp qword [esp + 0x28]
cmp esi, 0x4243d4
jne 0x40ac70
call dword [0x4278ec]
insb byte es:[edi], dx
dec edx
rcr byte [edi - 0x5979de1d], cl
or cl, byte [esi + 0x75]
arpl word [edx - 0x42], cx
invalid