Function at 0x44d220
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xb4
mov eax, dword [0x54b07c]
xor eax, esp
mov dword [esp + 0xb0], eax
cmp dword [0xf54868], 0
push ebx
push esi
push edi
jne 0x44d2cc
cmp dword [0xf5487c], 0
je 0x44d2cc
cmp dword [0x195eabc], 0
je 0x44d2cc
fld dword [0xf54890]
fld dword [0x541cd8]
fcompp
fnstsw ax
test ah, 5
jp 0x44d2cc
lea eax, [esp + 0x58]
mov dword [esp + 0x58], 0
push eax
push 0xfffe
push 0x30
push str.An_emulator_core_timing_inaccuracy_or_game_crash_has_been_detected._You_can_choose_to_continue_emulation.
push str.Unusual_core_state
push 0x5373ec
push dword [0xf54874]
push dword [0xf54870]
call dword [sym.imp.COMCTL32.dll_Ordinal_344]
cmp dword [esp + 0x58], 8
jne 0x44d2cc
push 0
push 0
push 1
push 0x446190
push 0
push 0
mov dword [0x195eabc], 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov eax, dword [0x54bba0]
mov ecx, dword [0xf540c4]
inc eax
mov dword [0x54bba0], eax
cmp ecx, 4
jne 0x44d2e9
mov dword [0xf53ccc], eax
jmp 0x44d321
cmp ecx, 7
jne 0x44d321
mov ecx, dword [0x54bba4]
mov eax, ecx
cdq
cmp dword [0x54bb9c], edx
jl 0x44d321
jg 0x44d309
cmp dword [0x54bb98], eax
jb 0x44d321
test ecx, ecx
js 0x44d321
mov ecx, 1
call fcn.00445b50
mov dword [0x54bba4], 0xffffffff
inc dword [0x2a768a4]
lea ecx, [esp + 0x68]
call fcn.00409810
mov ecx, dword [esp + 0x68]
sub ecx, dword [0x2a768a8]
mov eax, dword [esp + 0x6c]
sbb eax, dword [0x2a768ac]
cmp dword [0xf54750], 0
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
jne 0x44d765
cmp dword [0x195eabc], 0
jne 0x44d765
fild qword [esp + 0x28]
fstp qword [esp + 0x30]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
fld qword [0xf54898]
fld st(0)
mov dword [esp + 0x30], eax
fld qword [0x541cb8]
fmul st(1), st(0)
fxch st(1)
mov dword [esp + 0x34], ecx
fstp qword [esp + 0x38]
fld qword [esp + 0x38]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x44d761
fmul st(1), st(0)
fxch st(1)
fstp qword [esp + 0x38]
fild qword [esp + 0x28]
fstp qword [esp + 0x40]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
cmp byte [0x54ffd4], 0
fld qword [esp + 0x38]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
fsub qword [esp + 0x30]
fstp qword [esp + 0x40]
je 0x44d407
lea ecx, [esp + 0x90]
mov dword [esp + 0x40], 0
fstp st(0)
mov dword [esp + 0x44], 0
call fcn.00409810
fld qword [0x541cb8]
mov byte [0x54ffd4], 0
fldz
fld qword [esp + 0x40]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x44d738
mov dword [esp + 0x40], 0x2bc
mov dword [esp + 0x44], 0
fild qword [esp + 0x40]
fstp qword [esp + 0x38]
fld qword [esp + 0x38]
fmul st(2)
fstp qword [esp + 0x38]
fld qword [esp + 0x38]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x44d738
fstp st(0)
fmul qword [0xf54898]
fstp qword [esp + 0x38]
fild qword [esp + 0x28]
fstp qword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
fld qword [esp + 0x38]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
fsub qword [esp + 0x30]
fstp qword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x54], ecx
lea ecx, [esp + 0x78]
mov dword [esp + 0x50], eax
fld qword [esp + 0x50]
fsub qword [0x2a76920]
fstp qword [esp + 0x38]
call fcn.00409810
lea ecx, [esp + 0x88]
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
call fcn.00409810
fild qword [esp + 0x88]
fstp qword [esp + 0x60]
fld qword [esp + 0x28]
fld qword [esp + 0x38]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x44d570
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x44d572
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x2c], Ordinal_1
fild qword [esp + 0x28]
fstp qword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
fld qword [esp + 0x28]
fsub st(1)
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fld qword [esp + 0x60]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x44d53e
faddp st(1)
fstp qword [esp + 0x60]
jmp 0x44d574
fstp st(0)
mov dword [esp + 0x50], 0xffffffff
fstp st(0)
mov dword [esp + 0x54], Ordinal_1
fild qword [esp + 0x50]
fstp qword [esp + 0x50]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
jmp 0x44d574
fstp st(1)
fstp st(0)
call fcn.0049ca16
mov ebx, eax
mov esi, edx
mov dword [esp + 0x58], ebx
call fcn.0049c9ff
mov edi, eax
cmp ebx, 0x989680
jne 0x44d5af
test esi, esi
jne 0x44d5af
mov esi, 0x64
mov eax, edx
mul esi
mov ecx, eax
mov eax, edi
mul esi
add ecx, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
jmp 0x44d5ff
push esi
push ebx
push edx
push edi
call fcn.004f5480
push 0
push 0x3b9aca00
push ebx
push ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], edx
call fcn.0049e700
push esi
push dword [esp + 0x5c]
push edx
push eax
call fcn.004f5660
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x40]
mov ebx, 0x3b9aca00
mul ebx
mov ecx, eax
mov eax, dword [esp + 0x30]
mul ebx
add ecx, edx
add esi, eax
mov dword [esp + 0x28], esi
adc edi, ecx
mov dword [esp + 0x2c], edi
fild qword [esp + 0x28]
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fld qword [esp + 0x60]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x44d6fb
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x44d62b
fstp st(1)
or al, 0xff
jmp 0x44d63c
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x44d63a
xor al, al
jmp 0x44d63c
mov al, 0x80
test al, al
jns 0x44d6fd
fild qword [esp + 0x28]
fstp qword [esp + 0x48]
fsub qword [esp + 0x48]
fstp qword [esp + 0x58]
call fcn.0049cad1
push 0
push 0x64
push edx
push eax
call fcn.0049e700
fld qword [0x541cb0]
mov edi, eax
fmul qword [0x541cc0]
mov ebx, edx
fstp qword [esp + 0x48]
fld qword [esp + 0x58]
fcom qword [esp + 0x48]
fnstsw ax
test ah, 0x41
jne 0x44d6a5
mov esi, edi
mov edx, 0x311cd
add esi, 0xad160000
mov eax, ebx
fstp st(0)
adc eax, edx
mov dword [esp + 0x4c], eax
mov eax, 0xad160000
jmp 0x44d6b7
call fcn.004f5990
wait
mov esi, edi
mov ecx, ebx
add esi, eax
adc ecx, edx
mov dword [esp + 0x4c], ecx
add edi, eax
push 0
push 0x3b9aca00
adc ebx, edx
push ebx
push edi
call fcn.004f5660
mov dword [esp + 0xa8], eax
imul eax, eax, 0x3b9aca00
mov dword [esp + 0xac], edx
sub esi, eax
lea eax, [esp + 0xa8]
push eax
mov dword [esp + 0xb4], esi
call fcn.0049c67b
add esp, 4
jmp 0x44d574
fstp st(1)
lea ecx, [esp + 0x68]
fstp st(0)
call fcn.00409810
mov ecx, dword [esp + 0x68]
sub ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x6c]
sbb eax, dword [esp + 0x7c]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
fild qword [esp + 0x70]
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fsub qword [esp + 0x38]
fstp qword [0x2a76920]
jmp 0x44d765
fdivrp st(1)
call fcn.004f5990
wait
push edx
push eax
push str.Invalid_timer:__lld_ms_n
call fcn.00402650
add esp, 0xc
lea ecx, [esp + 0x70]
call fcn.00409810
mov byte [0x54ffd4], 0
jmp 0x44d765
fstp st(1)
fstp st(0)
lea ecx, [esp + 0x98]
call fcn.00409810
mov ecx, dword [eax]
sub ecx, dword [0x2a768a8]
mov eax, dword [eax + 4]
sbb eax, dword [0x2a768ac]
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], ecx
fild qword [esp + 0x80]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fdiv dword [0x541ce0]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fld1
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x44d7df
fdivr dword [0x541cd8]
push ecx
mov ecx, 0x2693590
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp]
call fcn.0044cdd0
fstp dword [0xf54890]
add esp, 4
jmp 0x44d7e1
fstp st(0)
lea ecx, [esp + 0xa0]
call fcn.00409810
pop edi
pop esi
pop ebx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [0x2a768a8], ecx
mov ecx, dword [esp + 0xb0]
xor ecx, esp
mov dword [0x2a768ac], eax
call fcn.0049dba8
mov esp, ebp
pop ebp
ret