Function at 0x43c7b0
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
mov eax, 0x3d04
call fcn.0049a510
mov ecx, dword [0x52b40c]
push ebx
xor ebx, ebx
push ebp
push esi
push edi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
cmp dword [ecx + 0x1246c], ebx
jne 0x43c7e6
mov dword [esp + 0x54], ebx
cmp dword [ecx + 0x11668], ebx
je 0x43c7ee
mov dword [esp + 0x54], 1
or ebp, 0xffffffff
xor eax, eax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x74], ebp
mov dword [esp + 0x64], ebp
add ecx, 0x10fb8
mov dword [esp + eax*4 + 0x78], ecx
inc eax
add ecx, 0x34
cmp eax, 2
jl 0x43c805
mov eax, dword [0x52b844]
mov ecx, dword [0x52b840]
push ebx
push 2
push eax
mov esi, 0x3c
push ecx
mov dword [0x52aec0], esi
mov dword [0x52b848], esi
call fcn.0049a610
push ebx
add eax, 1
push esi
adc edx, ebx
push edx
push eax
call fcn.0049a560
push ebx
push 2
push edx
push eax
call fcn.0049a560
mov dword [0x52aea8], eax
mov dword [0x52aeac], edx
cmp dword [0x52b3cc], ebx
je 0x43c878
lea edx, [esp + 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
jmp 0x43c880
call dword [sym.imp.WINMM.dll_timeGetTime]
xor ecx, ecx
sub eax, dword [0x52aeb0]
mov dword [0x52b3c0], ebx
sbb ecx, dword [0x52aeb4]
inc dword [0x52b3d0]
mov dword [0x52b3b8], eax
mov dword [0x52b3bc], ecx
mov dword [0x52b3c4], ebx
mov dword [0x4a907c], ebx
call fcn.0040f180
mov dword [0x52a9ec], ebx
mov dword [0x52a9e8], ebx
mov dword [0x52adf4], ebx
mov dword [0x52adf0], ebx
call fcn.00411cf0
mov esi, dword [0x52b40c]
mov dword [0x52b33c], ebx
mov dword [0x52b338], ebx
mov eax, dword [esi + 0x10584]
push eax
call fcn.00406150
mov edx, dword [esi + 0x80a0]
add esp, 4
call fcn.00434ee0
xor ecx, ecx
call fcn.004354b0
mov ecx, dword [0x52b40c]
mov edi, dword [ecx + 0xfcb4]
call fcn.00445540
push 0x3c90
lea edx, [esp + 0x84]
push ebx
push edx
call sub.MSVCR90.dll_memset
mov eax, dword [esp + 0x3d28]
mov edx, dword [esp + 0x3d24]
add esp, 0xc
lea ecx, [esp + 0x80]
mov dword [esp + 0x3988], ebp
call fcn.0043fa60
lea eax, [esp + 0x3a80]
mov edx, 2
jmp 0x43c960
mov ecx, 4
mov dword [eax + 4], ebp
mov dword [eax], ebp
mov dword [eax + 8], ebp
add eax, 0x20
sub ecx, 1
jne 0x43c965
sub edx, 1
jne 0x43c960
lea eax, [esp + 0x3b8c]
mov ecx, 2
jmp 0x43c990
mov dword [eax], 4
add eax, 0x10
sub ecx, 1
jne 0x43c990
call fcn.00443380
mov eax, dword [0x52b40c]
lea esi, [eax + 0x10bf0]
cmp dword [0x4aa254], ebx
je 0x43ca2b
push 0x4aa294
call dword [sym.imp.pthreadVC2.dll_pthread_mutex_lock]
add esp, 4
call dword [0x4aa278]
push 0x220
mov ebp, eax
call dword [sym.imp.MSVCR90.dll_malloc]
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x43ca0c
mov ecx, 0x88
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x4aa288]
cmp ecx, 0x10
jne 0x43ca54
push ebp
push str.BGM_command_queue_capacity_exceeded_at_time__ld
call fcn.00444320
add esp, 8
push ebx
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
push 0x4aa294
call dword [sym.imp.pthreadVC2.dll_pthread_mutex_unlock]
mov eax, dword [0x52b40c]
add esp, 4
mov dword [0x52a444], 1
xor ebx, ebx
mov dword [eax + 0x10eb0], ebx
mov dword [eax + 0x10eb4], ebx
cmp dword [0x52b3cc], ebx
je 0x43ca91
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
jmp 0x43ca99
mov esi, dword [esp + 0x7c]
lea eax, [ecx + ecx*2]
add eax, eax
add eax, eax
add eax, eax
mov edx, 1
mov dword [eax + 0x4aa298], edx
mov dword [eax + 0x4aa29c], ebp
mov dword [eax + 0x4aa2a0], ebx
add ecx, edx
mov dword [eax + 0x4aa2a4], esi
mov dword [eax + 0x4aa2a8], edx
mov dword [0x4aa288], ecx
jmp 0x43ca0c
call dword [sym.imp.WINMM.dll_timeGetTime]
xor ecx, ecx
sub eax, dword [0x52aeb0]
mov dword [0x52b3c0], ebx
sbb ecx, dword [0x52aeb4]
inc dword [0x52b3d0]
mov dword [0x52b3b8], eax
mov dword [0x52b3bc], ecx
mov dword [0x52b3c4], ebx
mov dword [esp + 0x48], ebx
xor ebp, ebp
call fcn.0040f180
mov eax, dword [0x52a9e8]
cmp eax, dword [0x52a9ec]
je 0x43cb04
cmp dword [0x52b358], ebx
jne 0x43cae6
xor ecx, ecx
jmp 0x43cb00
mov ecx, dword [eax*4 + 0x52a5e8]
inc eax
cmp eax, 0x100
mov dword [0x52a9e8], eax
jl 0x43cb00
mov dword [0x52a9e8], ebx
mov dword [esp + 0x48], ecx
call fcn.00415050
test eax, eax
je 0x43cb48
cmp dword [0x52b360], ebx
jne 0x43cb19
xor eax, eax
jmp 0x43cb46
mov eax, dword [0x52adf0]
cmp eax, dword [0x52adf4]
je 0x43dde2
mov ecx, dword [eax*4 + 0x52a9f0]
inc eax
cmp eax, 0x100
mov dword [0x52adf0], eax
jl 0x43cb44
mov dword [0x52adf0], ebx
mov eax, ecx
mov ebp, eax
lea esi, [esp + 0x48]
call fcn.00443c30
call fcn.00411ec0
test eax, eax
je 0x43cb9a
cmp dword [0x52b360], ebx
jne 0x43cb6a
cmp dword [0x52b358], ebx
je 0x43cb9a
mov eax, dword [0x52b338]
cmp eax, dword [0x52b33c]
je 0x43dde0
mov ecx, dword [0x52b334]
mov ecx, dword [ecx + eax*4]
inc eax
cmp eax, dword [0x52b340]
mov dword [0x52b338], eax
jl 0x43cb98
mov dword [0x52b338], ebx
mov ebx, ecx
lea eax, [esp + 0x78]
call fcn.00411970
mov edi, dword [0x52b40c]
mov dword [esp + 0x2c], edx
xor edx, edx
mov dword [esp + 0x28], eax
cmp dword [edi + 0x11668], edx
je 0x43cbe7
mov ecx, dword [esp + 0x48]
cmp ecx, edx
je 0x43cbcb
test ecx, 0x200
je 0x43cbdb
cmp ebp, edx
je 0x43cbd7
test ebp, 0x100
je 0x43cbdb
cmp eax, edx
je 0x43cbe7
mov dword [esp + 0x48], 0x1b
mov dword [esp + 0x28], edx
fld qword [0x4a6bc8]
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
mov edx, eax
imul edx, edx, 0x1a0
imul eax, eax, 0x74
lea ecx, [esp + edx + 0x80]
mov dword [esp + 0x24], ecx
lea ebp, [esp + eax + 0x3990]
mov eax, dword [ecx + 0x194]
cmp eax, dword [ecx + 0x190]
mov dword [esp + 0x34], 0xffffffff
jge 0x43dbb3
mov ecx, dword [esp + 0x24]
lea edx, [eax + eax*4]
lea esi, [ecx + edx*8]
mov edx, dword [ecx + 0x198]
mov dword [ecx + 0x198], 0
mov ebx, dword [esi]
mov dword [esp + 0x20], esi
mov dword [esp + 0x38], 0
cmp ebx, 6
ja case.default.0x43cc5d
jmp dword [ebx*4 + 0x43e0ec]
mov ebx, dword [esp + 0x14]
imul ebx, ebx, 0xb4
lea ebx, [esp + ebx + 0x3ba4]
test edx, edx
je 0x43cc99
mov eax, dword [esp + 0x14]
fstp st(0)
mov ecx, esi
lea edx, [esp + 0x80]
call fcn.004431b0
fld qword [0x4a6bc8]
mov edi, dword [0x52b40c]
cmp dword [edi + 0x8098], 0
jne 0x43cd90
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x2c], eax
jne 0x43cd97
mov eax, dword [ebx + 0xc]
lea ecx, [eax + eax*4]
mov edx, dword [ebx + ecx*4 + 0x1c]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
xor eax, eax
cmp dword [ebx + 8], eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x28]
sete al
lea eax, [eax + eax - 1]
push eax
push ecx
push edx
mov ecx, ebx
call fcn.00440260
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0xc]
add esp, 0xc
cmp dword [esp + 0x18], eax
je 0x43cd3c
mov eax, dword [ebx + 8]
mov ecx, dword [0x52aec4]
imul eax, eax, 0x454
mov edx, dword [eax + ecx + 0xb3c]
mov esi, dword [eax + ecx + 0xb38]
add eax, ecx
sub esp, 8
fstp qword [esp]
push edx
mov edx, dword [edi + 0x10348]
push 0xffffffffffffffff
call fcn.00473bc0
fld qword [0x4a6bc8]
mov edi, dword [0x52b40c]
mov esi, dword [esp + 0x30]
add esp, 0x10
jmp 0x43cd97
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
cmp ecx, dword [ebx + eax*4 + 0x1c]
je 0x43cd97
mov edx, dword [ebx + 8]
mov eax, dword [0x52aec4]
imul edx, edx, 0x454
mov ecx, dword [eax + edx + 0xb44]
mov esi, dword [eax + edx + 0xb40]
add eax, edx
mov edx, dword [edi + 0x10348]
sub esp, 8
fstp qword [esp]
push ecx
push 0xffffffffffffffff
call fcn.00473bc0
fld qword [0x4a6bc8]
mov edi, dword [0x52b40c]
mov esi, dword [esp + 0x30]
add esp, 0x10
jmp 0x43cd97
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x34], edx
cmp dword [esp + 0x54], 0
mov ecx, dword [esp + 0x24]
je 0x43ced8
mov eax, dword [ecx + 0x19c]
cmp eax, 0x3c
jge 0x43cec5
mov edx, dword [esp + 0x14]
lea eax, [eax + edx*4]
and eax, 0x80000007
jns 0x43cdc8
dec eax
or eax, 0xfffffff8
inc eax
jne 0x43cec5
mov edx, dword [edi + 0x10edc]
mov eax, dword [edi + 0x10ed8]
mov ecx, dword [edi + 0x10ee4]
push edx
push eax
push 0
push ecx
call fcn.0049a610
mov ecx, dword [edi + 0x10ee0]
push 0
push ecx
push edx
push eax
call fcn.0049a650
mov dword [edi + 0x10ed8], eax
mov dword [edi + 0x10edc], edx
mov ecx, dword [ebx + 0x10]
cdq
lea esi, [ecx - 1]
idiv esi
mov eax, dword [ebx + 0xc]
lea eax, [edx + eax + 1]
cdq
idiv ecx
lea ecx, [edx + edx*4]
lea esi, [ebx + ecx*4 + 0x1c]
mov dword [ebx + 0xc], edx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 4]
mov dword [esi], eax
jle 0x43ce7c
mov eax, dword [edi + 0x10edc]
mov ecx, dword [edi + 0x10ed8]
mov edx, dword [edi + 0x10ee4]
push eax
push ecx
push 0
push edx
call fcn.0049a610
mov ecx, dword [edi + 0x10ee0]
push 0
push ecx
push edx
push eax
call fcn.0049a650
mov dword [edi + 0x10ed8], eax
mov dword [edi + 0x10edc], edx
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, dword [edi + 0x10ed8]
inc ecx
cdq
idiv ecx
add edx, dword [esi + 4]
mov dword [esi], edx
mov edx, dword [ebx + 8]
mov eax, dword [0x52aec4]
imul edx, edx, 0x454
mov ecx, dword [eax + edx + 0xb3c]
mov esi, dword [eax + edx + 0xb38]
add eax, edx
mov edx, dword [edi + 0x10348]
sub esp, 8
fstp qword [esp]
push ecx
push 0xffffffffffffffff
call fcn.00473bc0
fld qword [0x4a6bc8]
mov edi, dword [0x52b40c]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
add esp, 0x10
cmp dword [ecx + 0x19c], 0x12c
jl 0x43ced8
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x34], edx
cmp dword [esp + 0x34], 0xffffffff
je case.default.0x43cc5d
cmp dword [ebx + 4], 0
jne 0x43cfc3
cmp dword [edi + 0x8098], 0
jne 0x43cf40
mov eax, dword [ebx + 8]
mov ecx, dword [0x52aec4]
imul eax, eax, 0x454
mov edx, dword [eax + ecx + 0xb4c]
mov esi, dword [eax + ecx + 0xb48]
add eax, ecx
sub esp, 8
fstp qword [esp]
push edx
mov edx, dword [edi + 0x10348]
push 0xffffffffffffffff
call fcn.00473bc0
fld qword [0x4a6bc8]
mov edi, dword [0x52b40c]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
add esp, 0x10
mov eax, dword [ebx + 0xc]
mov edx, 1
add eax, edx
lea eax, [eax + eax*4]
mov eax, dword [ebx + eax*4]
cmp eax, 3
ja case.default.0x43cf59
jmp dword [eax*4 + 0x43e108]
mov esi, dword [esi + 0x24]
mov dword [esi + 8], 0
mov dword [esi + 0xc], edx
jmp 0x43cf9c
mov esi, dword [esi + 0x24]
mov dword [esi + 8], edx
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 2
jmp 0x43cf9c
mov esi, dword [esi + 0x24]
mov dword [esi + 8], 3
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebx + edx*4 + 0x1c]
mov dword [esi + 0xc], eax
mov edx, dword [ebx + 8]
mov eax, dword [0x52aec4]
imul edx, edx, 0x454
lea eax, [edx + eax + 0xd9c]
mov edx, dword [ebx + 0xc]
mov dword [eax], edx
mov edx, dword [ebx + 0xc]
lea edx, [edx + edx*4]
mov edx, dword [ebx + edx*4 + 0x1c]
mov dword [eax + 4], edx
mov dword [ebx], 0
mov eax, dword [ecx + 0x194]
cmp eax, dword [ecx + 0x190]
jl 0x43cfde
xor ecx, ecx
jmp 0x43db91
inc eax
mov dword [ecx + 0x194], eax
lea eax, [eax + eax*4]
mov dword [ecx + 0x198], 1
mov dword [ecx + 0x19c], 0
lea ecx, [ecx + eax*8]
jmp 0x43db91
test edx, edx
je 0x43d026
mov eax, dword [esp + 0x14]
fstp st(0)
mov ebx, dword [esp + 0x20]
lea edx, [esp + 0x80]
call fcn.00442fa0
fld qword [0x4a6bc8]
mov esi, ebx
mov eax, 1
cmp dword [esi + 8], eax
jne 0x43d044
cmp dword [esi + 0xc], 2
jne 0x43d044
cmp dword [ebp + 0x14], eax
jne 0x43d044
cmp dword [esi + 0x10], eax
jne 0x43d044
mov dword [esp + 0x38], eax
cmp dword [ebp + 0x14], 0xffffffff
je case.default.0x43cc5d
cmp dword [esp + 0x38], 0
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
mov dword [esp + 0x40], ecx
mov ecx, dword [ebp + 8]
lea esi, [ebp + 8]
lea eax, [ebp + 4]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], edx
jne 0x43d07a
mov edx, dword [esp + 0x14]
jmp 0x43d083
mov edx, 1
sub edx, dword [esp + 0x14]
push edx
push esi
push eax
mov eax, dword [esp + 0x38]
push eax
push ecx
call fcn.0043ff80
mov edi, dword [0x52b40c]
mov ebx, dword [0x52aec4]
add esp, 0x14
mov dword [esp + 0x34], eax
cmp eax, 0xffffffff
jne 0x43d15b
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
jne 0x43d143
mov eax, dword [edi + 0x10edc]
mov ecx, dword [edi + 0x10ed8]
mov edx, dword [edi + 0x10ee4]
push eax
push ecx
push 0
push edx
call fcn.0049a610
mov ecx, dword [edi + 0x10ee0]
push 0
push ecx
push edx
push eax
call fcn.0049a650
mov dword [edi + 0x10ed8], eax
mov dword [edi + 0x10edc], edx
cdq
mov ecx, 0xc
idiv ecx
mov eax, dword [edi + 0x10edc]
mov ecx, dword [edi + 0x10ed8]
push eax
push ecx
push 0
mov dword [esp + 0x40], edx
mov edx, dword [edi + 0x10ee4]
push edx
call fcn.0049a610
mov ecx, dword [edi + 0x10ee0]
push 0
push ecx
push edx
push eax
call fcn.0049a650
mov dword [edi + 0x10edc], edx
mov dword [edi + 0x10ed8], eax
cdq
mov ecx, 0xa
idiv ecx
add edx, ecx
mov dword [ebp + 0x1c], edx
jmp 0x43d15b
jle 0x43d15b
mov eax, dword [esp + 0x3d0c]
cdq
idiv dword [ebx + 0x4d4]
test edx, edx
jne 0x43d15b
dec ecx
mov dword [ebp + 0x1c], ecx
mov edx, dword [esp + 0x1c]
cmp edx, dword [ebp + 4]
jne 0x43d170
mov eax, dword [esp + 0x18]
cmp eax, dword [esi]
je 0x43d238
fld qword [edi + 0x10e90]
mov eax, dword [esp + 0x14]
fdiv st(1)
mov ecx, dword [ebx + eax*4 + 0x32c]
mov ebx, dword [ebx + eax*4 + 0x324]
mov edx, dword [edi + 0x10348]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
fmul qword [edi + 0x10e98]
fdiv st(1)
fmul st(1)
fst qword [esp + 0x68]
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x43d1b9
fstp st(1)
fstp qword [esp + 0x68]
jmp 0x43d1c8
fstp st(0)
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x43d1c8
fst qword [esp + 0x68]
cmp dword [edi + 0x10e8c], 0
je 0x43d238
test edx, edx
je 0x43d238
cmp dword [edi + 0x10eb8], 0
jne 0x43d238
cmp ebx, 0xffffffff
je 0x43d238
cmp dword [0x52b370], 1
jne 0x43d238
fstp st(0)
call fcn.00415520
mov esi, eax
cmp esi, 0xffffffff
je 0x43d22c
fld qword [esp + 0x68]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
sub esp, 8
fstp qword [esp]
push esi
mov ecx, ebx
call fcn.00415590
add esp, 0xc
cmp eax, 0xffffffff
je 0x43d22c
mov ecx, dword [0x52b388]
lea eax, [esi + esi*4]
mov dword [ecx + eax*8], 0xffffffff
fld qword [0x4a6bc8]
mov edi, dword [0x52b40c]
mov edx, dword [ebp + 4]
cmp edx, 0xffffffff
je 0x43d47d
mov ecx, dword [ebp + 8]
cmp ecx, 0xffffffff
je 0x43d47d
mov esi, dword [0x52aecc]
mov ebx, dword [0x52aed0]
mov eax, ecx
imul eax, esi
add eax, edx
imul eax, eax, 0x440
add eax, ebx
je 0x43d47d
cmp dword [edi + 0x1e64], 0
jle 0x43d45a
cmp dword [esp + 0x54], 0
jne 0x43d295
cmp dword [eax], 0xfffffffe
je 0x43d295
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x10], ecx
jmp 0x43d45a
mov edx, dword [ebp + 0x10]
imul edx, esi
add edx, dword [ebp + 0xc]
imul edx, edx, 0x440
mov eax, dword [edx + ebx]
mov dword [esp + 0x1c], eax
test eax, eax
jge 0x43d321
mov ecx, dword [edi + 0x10edc]
mov edx, dword [edi + 0x10ed8]
mov eax, dword [edi + 0x10ee4]
push ecx
push edx
push 0
push eax
call fcn.0049a610
mov ecx, dword [edi + 0x10ee0]
push 0
push ecx
push edx
push eax
call fcn.0049a650
mov dword [edi + 0x10ed8], eax
mov dword [edi + 0x10edc], edx
cdq
idiv dword [edi + 0x1e64]
mov ecx, dword [0x52aec8]
imul ecx, esi
xor eax, eax
mov dword [esp + 0x1c], edx
test ecx, ecx
jle 0x43d321
mov edx, ebx
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [edx]
je 0x43d318
inc eax
add edx, 0x440
cmp eax, ecx
jl 0x43d307
jmp 0x43d321
cdq
idiv esi
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x10], eax
mov edx, dword [0x52aec4]
mov ecx, dword [edx + 0x4d4]
mov eax, ecx
cdq
sub eax, edx
mov ebx, eax
mov eax, dword [esp + 0x3d0c]
cdq
idiv ecx
sar ebx, 1
imul ebx, dword [esp + 0x14]
cmp edx, ebx
jne 0x43d42b
mov eax, dword [edi + 0x1e64]
sub eax, 1
je 0x43d3ab
mov edx, dword [edi + 0x10edc]
mov eax, dword [edi + 0x10ed8]
mov ecx, dword [edi + 0x10ee4]
push edx
push eax
push 0
push ecx
call fcn.0049a610
mov ecx, dword [edi + 0x10ee0]
push 0
push ecx
push edx
push eax
call fcn.0049a650
mov dword [edi + 0x10ed8], eax
mov dword [edi + 0x10edc], edx
mov ecx, dword [edi + 0x1e64]
cdq
lea ebx, [ecx - 1]
idiv ebx
mov eax, dword [esp + 0x1c]
lea eax, [edx + eax + 1]
cdq
idiv ecx
mov dword [esp + 0x1c], edx
mov ecx, dword [0x52aec8]
imul ecx, esi
xor eax, eax
test ecx, ecx
jle 0x43d3de
mov edx, dword [0x52aed0]
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [edx]
je 0x43d3d5
inc eax
add edx, 0x440
cmp eax, ecx
jl 0x43d3c0
jmp 0x43d3de
cdq
idiv esi
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x10], eax
mov ecx, dword [0x52aec4]
mov eax, dword [esp + 0x14]
mov edx, dword [ecx + eax*4 + 0x34c]
mov esi, dword [ecx + eax*4 + 0x344]
sub esp, 8
cmp dword [ecx + 0x354], 0
fstp qword [esp]
push edx
mov edx, dword [edi + 0x10348]
je 0x43d40f
push eax
jmp 0x43d411
push 0xffffffffffffffff
call fcn.00473bc0
fld qword [0x4a6bc8]
mov esi, dword [0x52aecc]
mov edi, dword [0x52b40c]
add esp, 0x10
mov eax, dword [ebp + 0x10]
mov ebx, dword [0x52aed0]
imul eax, esi
add eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x1c]
imul eax, eax, 0x440
cmp dword [esp + 0x54], 0
mov dword [eax + ebx], ecx
je 0x43d45a
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov dword [ebp + 4], edx
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0xc]
cmp ecx, 0xffffffff
je 0x43d47d
mov eax, dword [ebp + 0x10]
cmp eax, 0xffffffff
je 0x43d47d
imul eax, esi
add eax, ecx
imul eax, eax, 0x440
add eax, ebx
mov dword [esp + 0x18], eax
jmp 0x43d485
mov dword [esp + 0x18], 0
mov ecx, dword [ebp + 0x14]
mov ebx, dword [esp + 0x40]
mov edx, dword [ebp + 4]
add ebx, ebx
add ebx, ebx
add ecx, ebx
shl ecx, 5
mov dword [esp + ecx + 0x3a80], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
add eax, ebx
shl eax, 5
mov dword [esp + eax + 0x3a84], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0xc]
add edx, ebx
shl edx, 5
mov dword [esp + edx + 0x3a8c], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
add ecx, ebx
shl ecx, 5
mov dword [esp + ecx + 0x3a90], edx
mov eax, dword [ebp + 0x14]
add eax, ebx
shl eax, 5
mov dword [esp + eax + 0x3a98], 1
mov ecx, dword [ebp + 0x14]
add ecx, ebx
cmp dword [esp + 0x38], 0
jne 0x43d504
mov edx, dword [esp + 0x14]
shl ecx, 5
mov dword [esp + ecx + 0x3a9c], edx
jmp 0x43d517
mov eax, 1
sub eax, dword [esp + 0x14]
shl ecx, 5
mov dword [esp + ecx + 0x3a9c], eax
cmp dword [esp + 0x34], 0xffffffff
je case.default.0x43cc5d
mov eax, dword [esp + 0x18]
test eax, eax
je case.default.0x43cc5d
cmp dword [eax], 0xffffffff
je case.default.0x43cc5d
mov ecx, dword [0x52aec4]
mov eax, dword [esp + 0x14]
mov edx, dword [ecx + eax*4 + 0x33c]
mov esi, dword [ecx + eax*4 + 0x334]
sub esp, 8
fstp qword [esp]
push edx
mov edx, dword [edi + 0x10348]
push 0xffffffffffffffff
call fcn.00473bc0
mov eax, dword [ebp + 0x14]
add eax, ebx
shl eax, 5
mov dword [esp + eax + 0x3aa8], 2
mov eax, dword [ebp + 0x14]
lea ecx, [eax + eax*4]
mov ecx, dword [ebp + ecx*4 + 0x24]
mov edx, ecx
imul edx, edx, 0x1adc
mov eax, dword [esp + edx + 0x3dc]
imul eax, eax, 0x5c
lea ebx, [esp + edx + 0x3d8]
mov edx, dword [ebp + 0x20]
lea esi, [eax + ebx + 0xc]
mov eax, dword [edx + 8]
mov dword [esi], eax
mov edx, dword [ebp + 0x20]
mov eax, dword [edx + 0x10]
mov dword [esi + 4], eax
mov eax, dword [esi + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x28]
mov edi, dword [eax]
mov dword [esi + edx*4 + 0x10], edi
mov eax, dword [eax]
mov edi, dword [0x52b40c]
imul eax, eax, 0x399
add eax, dword [esp + 0x44]
mov edx, dword [edi + 0x1e60]
mov edx, dword [edx + eax*4 + 0xa2c]
mov eax, dword [esi + 8]
inc eax
lea eax, [eax + eax*4]
dec edx
mov dword [esi + eax*4], edx
mov eax, dword [esi + 8]
lea edx, [eax + eax*4]
mov dword [esp + 0x78], ecx
lea ecx, [ecx + eax*2 + 1]
mov dword [esi + edx*4 + 0xc], ecx
mov eax, dword [ebp + 0x14]
add eax, 2
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp + ecx*4]
mov dword [esi + edx*4 + 0x1c], eax
mov eax, dword [ebp + 0x14]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp + ecx*4 + 0x2c]
mov dword [esi + edx*4 + 0x18], eax
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + ecx*4 + 0x10]
lea ecx, [esi + ecx*4]
mov ecx, dword [ecx + 0x14]
add esp, 0x10
call fcn.004432d0
mov ecx, dword [esi + 8]
inc ecx
lea edx, [ecx + ecx*4]
mov dword [esi + edx*4], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + 4]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x38], eax
lea ecx, [ecx + eax*4 + 0xc0]
mov eax, dword [0x52aec4]
cmp dword [edi + 0x4a14], 0
je 0x43d67a
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 0xc]
jmp 0x43d684
mov edx, dword [ebp + 8]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 4]
mov dword [eax + ecx*4], edx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
lea ecx, [ecx + edx*4 + 0xb8]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x1c], eax
lea edx, [esp + 0x3b88]
mov dword [esp + 0x40], ecx
xor eax, eax
mov dword [esp + 0x18], 0x3e7
xor ecx, ecx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x38]
mov edx, dword [edx]
cmp edx, dword [esp + 0x18]
jge 0x43d6d4
mov eax, ecx
mov dword [esp + 0x18], edx
add dword [esp + 0x38], 0x10
inc ecx
cmp ecx, 2
jl 0x43d6c2
mov ecx, eax
shl ecx, 4
mov edx, dword [esp + ecx + 0x3b8c]
lea ecx, [esp + ecx + 0x3a78]
inc edx
shl eax, 4
mov dword [esp + eax + 0x3b88], edx
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
mov dword [ecx + 0x108], eax
mov dword [ecx + 0x10c], edx
cmp dword [edi + 0x1ed0], 0
je 0x43d73a
cmp dword [ebx + 4], 0
jne 0x43d73a
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
mov eax, dword [esi + eax*4 + 0x10]
call fcn.00472830
call fcn.004728b0
mov edi, dword [0x52b40c]
mov edx, 1
add dword [esi + 8], edx
add dword [ebp + 0x14], edx
mov eax, dword [ebp + 0x14]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + ecx*4 + 0x30]
lea ecx, [ebp + ecx*4]
cmp eax, 0xffffffff
je 0x43d75e
mov dword [ebp + 0xc], eax
mov dword [ebp + 4], eax
mov ecx, dword [ecx + 0x34]
cmp ecx, 0xffffffff
je 0x43d76c
mov dword [ebp + 0x10], ecx
mov dword [ebp + 8], ecx
add dword [ebx + 8], edx
cmp dword [esi], 3
jne 0x43d78a
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebp + 0x18]
jge 0x43d77f
add dword [ebx + 4], edx
cmp dword [esi], 3
jne 0x43d78a
mov dword [esi], 0
mov ecx, dword [ebp + 0x14]
cmp ecx, dword [ebp + 0x18]
jl 0x43dbc1
add dword [ebx + 4], edx
mov eax, dword [esp + 0x68]
mov dword [esp + eax*4 + 0x3980], edx
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x194]
cmp ecx, dword [eax + 0x190]
jl 0x43d7cc
fld qword [0x4a6bc8]
xor eax, eax
xor edx, edx
test eax, eax
setne dl
mov eax, edx
jmp 0x43db98
fld qword [0x4a6bc8]
inc ecx
mov dword [eax + 0x194], ecx
mov dword [eax + 0x198], edx
mov dword [eax + 0x19c], 0
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
xor edx, edx
test eax, eax
setne dl
mov eax, edx
jmp 0x43db98
mov ebx, dword [esi + 4]
mov esi, dword [esi + 8]
cmp esi, 3
jne 0x43d829
mov esi, dword [esp + 0x20]
mov eax, ebx
imul eax, eax, 0x1adc
lea edx, [esp + eax + 0x3c8]
mov eax, dword [esi + 0xc]
push 1
push 0
call fcn.00443130
jmp 0x43d84f
mov eax, dword [esp + 0x20]
mov ecx, ebx
imul ecx, ecx, 0x1adc
lea edx, [esp + ecx + 0x3c8]
mov ecx, dword [eax + 0xc]
push ecx
push esi
mov eax, 1
call fcn.00443130
mov esi, dword [esp + 0x28]
mov ebx, 1
add esp, 8
cmp dword [esi + 8], ebx
jne 0x43d862
mov eax, dword [esi + 0x10]
mov dword [edx + 0x10], eax
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x24]
mov dword [esp + ecx*4 + 0x3980], ebx
mov ecx, dword [eax + 0x194]
cmp ecx, dword [eax + 0x190]
jl 0x43d88e
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
jmp 0x43db98
inc ecx
mov dword [eax + 0x194], ecx
lea edx, [ecx + ecx*4]
mov dword [eax + 0x198], ebx
mov dword [eax + 0x19c], 0
lea eax, [eax + edx*8]
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
jmp 0x43db98
test edx, edx
je 0x43d8c8
mov dword [esp + 0x3ba0], 1
cmp dword [esp + 0x54], 0
je 0x43d8e6
or eax, 0xffffffff
mov dword [esp + 0x398c], 1
mov dword [esp + 0x3988], eax
jmp 0x43d8ed
mov eax, dword [esp + 0x3988]
cmp dword [esp + 0x398c], 0
mov esi, eax
jne 0x43db25
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x2c], edx
je 0x43d90b
xor ecx, ecx
jmp 0x43d96a
mov ecx, dword [esp + 0x28]
test cl, 8
je 0x43d921
dec eax
cmp eax, 0xffffffff
jge 0x43d921
mov eax, dword [edi + 0x49fc]
dec eax
test cl, 1
je 0x43d931
sub eax, 0xa
cmp eax, 0xffffffff
jge 0x43d931
or eax, 0xffffffff
test cl, 2
je 0x43d942
inc eax
cmp eax, dword [edi + 0x49fc]
jl 0x43d942
or eax, 0xffffffff
test cl, 4
je 0x43d957
mov edx, dword [edi + 0x49fc]
add eax, 0xa
cmp eax, edx
jl 0x43d957
lea eax, [edx - 1]
and ecx, 0x7f0
neg ecx
sbb ecx, ecx
mov dword [esp + 0x3988], eax
neg ecx
mov dword [esp + 0x398c], ecx
cmp esi, eax
je 0x43da3f
fld qword [edi + 0x10e90]
mov eax, dword [0x52aec4]
fdiv st(1)
mov ecx, dword [eax + 0x35c]
mov ebx, dword [eax + 0x358]
mov dword [esp + 0x68], ecx
mov ecx, dword [edi + 0x10348]
mov dword [esp + 0x40], ecx
fmul qword [edi + 0x10e98]
fdiv st(1)
fmul st(1)
fst qword [esp + 0x38]
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x43d9c1
fstp st(1)
fstp qword [esp + 0x38]
jmp 0x43d9d0
fstp st(0)
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x43d9d0
fst qword [esp + 0x38]
cmp dword [edi + 0x10e8c], 0
je 0x43da3f
test ecx, ecx
je 0x43da3f
cmp dword [edi + 0x10eb8], 0
jne 0x43da3f
cmp ebx, 0xffffffff
je 0x43da3f
cmp dword [0x52b370], 1
jne 0x43da3f
fstp st(0)
call fcn.00415520
mov esi, eax
cmp esi, 0xffffffff
je 0x43da33
fld qword [esp + 0x38]
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x40]
sub esp, 8
fstp qword [esp]
push esi
mov ecx, ebx
call fcn.00415590
add esp, 0xc
cmp eax, 0xffffffff
je 0x43da33
mov eax, dword [0x52b388]
lea edx, [esi + esi*4]
mov dword [eax + edx*8], 0xffffffff
fld qword [0x4a6bc8]
mov edi, dword [0x52b40c]
cmp dword [esp + 0x398c], 0
je case.default.0x43cc5d
fld qword [edi + 0x10e90]
mov eax, dword [0x52aec4]
fdiv st(1)
mov ecx, dword [eax + 0x364]
mov ebx, dword [eax + 0x360]
mov edx, dword [edi + 0x10348]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x38], edx
fmul qword [edi + 0x10e98]
fdiv st(1)
fmul st(1)
fst qword [esp + 0x40]
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x43da95
fstp st(1)
fstp qword [esp + 0x40]
jmp 0x43daa4
fstp st(0)
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x43daa4
fst qword [esp + 0x40]
cmp dword [edi + 0x10e8c], 0
je 0x43db17
cmp dword [esp + 0x38], 0
je 0x43db17
cmp dword [edi + 0x10eb8], 0
jne 0x43db17
cmp ebx, 0xffffffff
je 0x43db17
cmp dword [0x52b370], 1
jne 0x43db17
fstp st(0)
call fcn.00415520
mov esi, eax
cmp esi, 0xffffffff
je 0x43db0b
fld qword [esp + 0x40]
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x38]
sub esp, 8
fstp qword [esp]
push esi
mov ecx, ebx
call fcn.00415590
add esp, 0xc
cmp eax, 0xffffffff
je 0x43db0b
mov ecx, dword [0x52b388]
lea eax, [esi + esi*4]
mov dword [ecx + eax*8], 0xffffffff
fld qword [0x4a6bc8]
mov edi, dword [0x52b40c]
cmp dword [esp + 0x398c], 0
je case.default.0x43cc5d
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x194]
cmp eax, dword [ecx + 0x190]
jl 0x43db44
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
jmp 0x43db98
inc eax
mov dword [ecx + 0x194], eax
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov dword [ecx + 0x198], 1
mov dword [ecx + 0x19c], 0
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
jmp 0x43db98
inc eax
lea edx, [eax + eax*4]
mov dword [ecx + 0x194], eax
mov dword [ecx + 0x198], 1
mov dword [ecx + 0x19c], 0
lea ecx, [ecx + edx*8]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je case.default.0x43cc5d
mov ecx, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
jmp 0x43cc12
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x58], 1
jmp case.default.0x43cc5d
fld qword [0x4a6bc8]
mov eax, dword [esp + 0x24]
inc dword [eax + 0x19c]
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 2
mov dword [esp + 0x14], eax
jl 0x43cbf1
cmp dword [esp + 0x58], 0
fstp st(0)
mov ebx, dword [esp + 0x3d0c]
je 0x43dc52
cmp dword [esp + 0x5c], 0
je 0x43dc52
mov eax, dword [esp + 0x3a78]
mov ecx, 1
cmp eax, ecx
je 0x43dc52
mov ebp, dword [esp + 0x64]
cmp eax, 2
je 0x43dc27
mov dword [esp + 0x3a78], ecx
mov dword [esp + 0x3a7c], 0
jmp 0x43dc56
cmp ebp, 0xffffffff
jne 0x43dc56
cmp dword [esp + 0x4c], ecx
jne 0x43dc56
mov ecx, dword [0x52aec4]
mov ebp, dword [ecx + 0x204]
add ebp, ebx
mov dword [esp + 0x4c], 2
mov dword [esp + 0x74], ebx
mov dword [esp + 0x64], ebp
jmp 0x43dc56
mov ebp, dword [esp + 0x64]
mov edx, dword [0x52aec4]
mov esi, dword [edx + 0x200]
mov ecx, dword [0x52b34c]
test esi, esi
jle 0x43dca8
cmp dword [esp + 0x4c], 0
jne 0x43dca8
mov eax, ebx
shl eax, 8
cdq
idiv esi
cmp dword [ecx + 0x10], eax
jne 0x43dc8a
cmp dword [ecx + 0x14], eax
jne 0x43dc8a
cmp dword [ecx + 0x18], eax
je 0x43dca8
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x48], 1
mov dword [ecx + 0x50], 0
mov ebx, dword [esp + 0x3d0c]
mov eax, dword [0x52aec4]
cmp ebx, dword [eax + 0x200]
jne 0x43dcbd
mov dword [esp + 0x4c], 1
mov esi, dword [eax + 0x204]
test esi, esi
jle 0x43dd09
cmp dword [esp + 0x4c], 2
jne 0x43dd09
mov eax, dword [esp + 0x74]
sub eax, ebx
shl eax, 8
cdq
idiv esi
add eax, 0x100
jns 0x43dce3
xor eax, eax
cmp dword [ecx + 0x10], eax
jne 0x43dcf2
cmp dword [ecx + 0x14], eax
jne 0x43dcf2
cmp dword [ecx + 0x18], eax
je 0x43dd09
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x48], 1
mov dword [ecx + 0x50], 0
mov edx, 2
lea eax, [esp + 0x3b88]
lea ebx, [edx - 1]
mov ecx, dword [eax]
test ecx, ecx
jle 0x43dd21
dec ecx
mov dword [eax], ecx
add eax, 0x10
sub edx, ebx
jne 0x43dd18
mov eax, dword [esp + 0x3a78]
add dword [esp + 0x3a7c], ebx
sub eax, ebx
jne 0x43dd57
cmp dword [esp + 0x3b88], eax
jg 0x43dd57
cmp dword [esp + 0x3b98], eax
jg 0x43dd57
mov dword [esp + 0x3a78], 2
cmp dword [edi + 0x10ebc], 0
jne 0x43dd80
mov edi, dword [edi + 0xfcb4]
xor esi, esi
cmp dword [edi + 4], esi
jle 0x43dd80
lea ecx, [ecx]
mov eax, esi
mov ecx, edi
call fcn.00444bc0
add esi, ebx
cmp esi, dword [edi + 4]
jl 0x43dd70
lea eax, [esp + 0x80]
push eax
call fcn.0043e120
mov edi, dword [esp + 0x4c]
add dword [esp + 0x3d10], ebx
add esp, 4
cmp edi, 0x125
jne 0x43dda8
call fcn.00444870
cmp dword [esp + 0x50], 0
mov ebx, dword [0x52b0e4]
jne 0x43ddfc
cmp ebp, 0xffffffff
je 0x43ddcb
cmp dword [esp + 0x3d0c], ebp
jle 0x43ddcb
mov dword [esp + 0x50], 1
cmp edi, 0x1b
je 0x43ddfc
test ebx, ebx
jne 0x43ddfc
jmp 0x43cac2
jmp 0x43dde0
jmp 0x43dde2
push str.Not_yet_implemented
fstp st(0)
call fcn.00444120
push str.Programmers_fault
fstp st(0)
call fcn.00444120
mov esi, dword [0x52b40c]
mov ecx, dword [esi + 0x80c0]
cmp dword [ecx], 0
je 0x43de40
call fcn.00471fc0
mov edx, dword [esi + 0x80c0]
mov eax, dword [edx]
push eax
call dword [sym.imp.MSVCR90.dll_free]
mov ecx, dword [esi + 0x80c0]
add esp, 4
xor eax, eax
mov dword [ecx], eax
mov edx, dword [esi + 0x80c0]
mov dword [edx + 8], eax
mov ecx, dword [esi + 0x80c0]
mov dword [ecx + 4], eax
mov ecx, dword [esi + 0x80c0]
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
cmp edi, 0x1b
je 0x43dfe2
test ebx, ebx
jne 0x43dfe2
push 0x35b8
lea edx, [esp + 0x3cc]
push edx
lea eax, [esi + 0x4a28]
push eax
call sub.MSVCR90.dll_memcpy
add esp, 0xc
lea ebp, [esp + 0x58]
lea ebx, [esi + 0x4a2c]
mov dword [esp + 0x50], 2
mov edi, 1
mov ecx, dword [ebx]
mov dword [ebp], 0
test ecx, ecx
jle 0x43dec0
xor edx, edx
lea eax, [ebx + 0x10]
mov edi, ecx
mov ecx, dword [eax]
cmp edx, ecx
jge 0x43deb0
mov edx, ecx
add eax, 0x5c
sub edi, 1
jne 0x43dea8
mov dword [ebp], edx
mov edi, 1
add ebx, 0x1adc
add ebp, 4
sub dword [esp + 0x50], edi
jne 0x43de94
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
lea eax, [edx + ecx]
cmp dword [esi + 0x118e0], eax
jge 0x43dee8
mov dword [esi + 0x118e0], eax
cmp dword [esp + 0x398c], 0
je 0x43dfa9
mov eax, dword [esp + 0x3988]
cmp eax, 0xffffffff
jne 0x43df84
cmp dword [esi + 0x49fc], 0
jle 0x43df6c
mov ecx, dword [esi + 0x10edc]
mov edx, dword [esi + 0x10ed8]
mov eax, dword [esi + 0x10ee4]
push ecx
push edx
push 0
push eax
call fcn.0049a610
mov ecx, dword [esi + 0x10ee0]
push 0
push ecx
push edx
push eax
call fcn.0049a650
mov dword [esi + 0x10ed8], eax
mov dword [esi + 0x10edc], edx
cdq
idiv dword [esi + 0x49fc]
push 0x200
lea eax, [esi + 0x40c]
imul edx, edx, 0x254
add edx, dword [esi + 0x49f8]
mov byte [eax], 0
push edx
push eax
jmp 0x43dfa0
lea eax, [esi + 0x40c]
push 0x200
add esi, 0x11e18
push esi
mov byte [eax], 0
push eax
jmp 0x43dfa0
imul eax, eax, 0x254
add eax, dword [esi + 0x49f8]
push 0x200
lea ecx, [esi + 0x40c]
push eax
mov byte [ecx], 0
push ecx
call dword [sym.imp.MSVCR90.dll_strncat]
add esp, 0xc
mov eax, dword [0x52b34c]
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x20], ecx
mov ecx, 0x100
mov dword [eax + 0x18], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x10], ecx
mov dword [eax], ecx
mov dword [eax + 0x48], edi
mov dword [eax + 0x50], edi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3d04
ret
cmp dword [esi + 0x11668], 0
jne 0x43e0a9
fld qword [esi + 0x10e90]
mov eax, dword [0x52aec4]
fld qword [0x4a6bc8]
mov ebp, dword [eax + 0x36c]
fdiv st(1), st(0)
mov edi, dword [eax + 0x368]
mov ebx, dword [esi + 0x10348]
fxch st(1)
fmul qword [esi + 0x10e98]
fdiv st(1)
fmul st(1)
fst qword [esp + 0x58]
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x43e039
fstp st(2)
fstp st(0)
fstp qword [esp + 0x58]
jmp 0x43e04c
fstp st(0)
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x43e04a
fstp qword [esp + 0x58]
jmp 0x43e04c
fstp st(0)
cmp dword [esi + 0x10e8c], 0
je 0x43e0a9
test ebx, ebx
je 0x43e0a9
cmp dword [esi + 0x10eb8], 0
jne 0x43e0a9
cmp edi, 0xffffffff
je 0x43e0a9
cmp dword [0x52b370], 1
jne 0x43e0a9
call fcn.00415520
mov esi, eax
cmp esi, 0xffffffff
je 0x43e0a9
fld qword [esp + 0x58]
sub esp, 8
fstp qword [esp]
push esi
mov eax, ebp
mov ecx, edi
mov edx, ebx
call fcn.00415590
add esp, 0xc
cmp eax, 0xffffffff
je 0x43e0a9
mov eax, dword [0x52b388]
lea edx, [esi + esi*4]
mov dword [eax + edx*8], 0xffffffff
call fcn.004729a0
mov eax, dword [0x52b34c]
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x20], ecx
mov ecx, 0x100
pop edi
mov dword [eax + 0x18], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x10], ecx
mov dword [eax], ecx
pop esi
mov ecx, 1
pop ebp
mov dword [eax + 0x48], ecx
mov dword [eax + 0x50], ecx
xor eax, eax
pop ebx
add esp, 0x3d04
ret