Function at 0x53f040
Capabilities:
Print debug messages
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5d95ef
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x27c
push ebx
push esi
push edi
mov eax, dword [ebp + 0x50]
mov edi, dword [ebp + 0x4c]
xor ebx, ebx
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov ecx, dword [edi + 8]
xor eax, eax
cmp ecx, ebx
mov dword [esp + 0x290], ebx
jle 0x53f094
mov ecx, dword [edi + 4]
inc eax
mov edx, dword [ecx + eax*4 - 4]
mov byte [edx + 0x20], 1
mov ecx, dword [edi + 8]
cmp eax, ecx
jl 0x53f081
mov dword [esp + 0x18], 0x5e2824
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], ebx
mov eax, dword [edi + 8]
mov byte [esp + 0x290], 1
cmp eax, ebx
jle 0x53f157
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], ebx
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax + ecx]
mov al, byte [esi + 0x20]
test al, al
je 0x53f137
mov ecx, esi
call fcn.0050b080
mov ebx, dword [esp + 0x10]
fstp qword [esi + 0x28]
mov eax, dword [edi + 8]
mov edx, ebx
cmp edx, eax
jge 0x53f122
mov eax, dword [edi + 4]
mov ecx, dword [eax + ebx*4]
mov eax, dword [esi + 0x1c]
mov edx, dword [ecx + 0x1c]
cmp edx, eax
jne 0x53f11a
mov ecx, esi
call fcn.0050b080
fadd qword [esi + 0x28]
fstp qword [esi + 0x28]
mov eax, dword [edi + 4]
mov ecx, dword [eax + ebx*4]
mov byte [ecx + 0x20], 0
mov eax, dword [edi + 8]
inc ebx
cmp ebx, eax
jl 0x53f0f3
mov byte [esi + 0x20], 0
mov edx, dword [esp + 0x20]
push esi
push edx
lea ecx, [esp + 0x20]
call fcn.0040c9d0
xor ebx, ebx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
add eax, 4
inc ecx
mov dword [esp + 0xc], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x10], ecx
dec ecx
cmp ecx, eax
jl 0x53f0cb
lea eax, [esp + 0x18]
push 0x50b720
push eax
call fcn.0050b780
mov eax, 0x5e27fc
add esp, 8
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xac], ebx
mov dword [esp + 0x2c], eax
xor edi, edi
xor eax, eax
xor edx, edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x5c], 0x5f0894
mov dword [esp + 0x60], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x64], ebx
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x290], 4
cmp ecx, ebx
mov esi, ecx
jne 0x53f1e5
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xac], ebx
jmp 0x53f21d
shl ecx, 2
push ecx
call sub.mfc42u.dll_operatornew
add esp, 4
mov dword [esp + 0xa8], eax
push esi
push eax
call fcn.005463a0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp + 0xb0], esi
mov dword [esp + 0xac], esi
mov esi, ecx
cmp ecx, ebx
mov dword [esp + 0x14], esi
jne 0x53f249
cmp edi, ebx
je 0x53f23c
push edi
call sub.mfc42u.dll_operatordelete
mov ecx, dword [esp + 0x24]
add esp, 4
mov dword [esp + 0x30], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebx
jmp 0x53f32e
cmp edi, ebx
jne 0x53f279
lea edx, [ecx*4]
push edx
call sub.mfc42u.dll_operatornew
add esp, 4
mov dword [esp + 0x30], eax
push esi
push eax
call fcn.005463a0
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], esi
jmp 0x53f32e
mov ebx, dword [esp + 0x38]
cmp ecx, ebx
jg 0x53f29e
cmp ecx, edx
jle 0x53f295
sub ecx, edx
lea eax, [edi + edx*4]
push ecx
push eax
call fcn.005463a0
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], esi
jmp 0x53f32c
test eax, eax
jne 0x53f2c5
mov eax, edx
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x53f2b9
mov eax, 4
jmp 0x53f2c5
cmp eax, 0x400
jle 0x53f2c5
mov eax, 0x400
add eax, ebx
cmp ecx, eax
mov dword [esp + 0xc], eax
jl 0x53f2d3
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
lea edx, [ecx*4]
push edx
call sub.mfc42u.dll_operatornew
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov ebx, eax
add esp, 4
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
mov ecx, esi
sub ecx, eax
lea edx, [ebx + eax*4]
push ecx
push edx
call fcn.005463a0
mov eax, dword [esp + 0x30]
push eax
call sub.mfc42u.dll_operatordelete
mov ecx, dword [esp + 0x10]
add esp, 4
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], esi
xor ebx, ebx
mov esi, ecx
cmp ecx, ebx
mov dword [esp + 0x14], esi
jne 0x53f35e
mov eax, dword [esp + 0x60]
cmp eax, ebx
je 0x53f351
push eax
call sub.mfc42u.dll_operatordelete
mov ecx, dword [esp + 0x24]
add esp, 4
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x64], ebx
jmp 0x53f467
mov edx, dword [esp + 0x60]
cmp edx, ebx
jne 0x53f391
lea edx, [ecx + ecx*4]
shl edx, 3
push edx
call sub.mfc42u.dll_operatornew
add esp, 4
mov dword [esp + 0x60], eax
push esi
push eax
call fcn.0040d460
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x68], esi
mov dword [esp + 0x64], esi
jmp 0x53f467
mov edi, dword [esp + 0x68]
cmp ecx, edi
jg 0x53f3bd
mov eax, dword [esp + 0x64]
cmp ecx, eax
jle 0x53f3b4
sub ecx, eax
lea eax, [eax + eax*4]
push ecx
lea ecx, [edx + eax*8]
push ecx
call fcn.0040d460
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x64], esi
jmp 0x53f467
mov eax, dword [esp + 0x6c]
cmp eax, ebx
jne 0x53f3ea
mov eax, dword [esp + 0x64]
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x53f3de
mov eax, 4
jmp 0x53f3ea
cmp eax, 0x400
jle 0x53f3ea
mov eax, 0x400
add eax, edi
cmp ecx, eax
mov dword [esp + 0xc], eax
jl 0x53f3f8
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xc]
lea edx, [eax + eax*4]
shl edx, 3
push edx
call sub.mfc42u.dll_operatornew
mov ebx, eax
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
mov edi, ebx
lea ecx, [eax + eax*4]
add esp, 4
shl ecx, 3
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x14]
mov ecx, esi
lea edx, [eax + eax*4]
sub ecx, eax
push ecx
lea eax, [ebx + edx*8]
push eax
call fcn.0040d460
mov ecx, dword [esp + 0x60]
push ecx
call sub.mfc42u.dll_operatordelete
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add esp, 4
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], edx
xor ebx, ebx
xor eax, eax
cmp ecx, ebx
jle 0x53f4aa
xor edx, edx
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0xa8]
mov ecx, dword [ecx + eax*4]
mov ecx, dword [ecx + 0x1c]
mov dword [esi + eax*4], ecx
mov ecx, dword [esp + 0x30]
mov dword [ecx + eax*4], 0
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x60]
mov esi, dword [esi + eax*4]
add ecx, edx
inc eax
add edx, 0x28
mov dword [esi + 0x10], ecx
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jl 0x53f46f
mov ebx, dword [ebp + 0x4c]
xor edi, edi
xor eax, eax
mov edx, dword [ebx + 8]
mov dword [esp + 0x10], eax
cmp edx, edi
jle 0x53f504
mov edx, dword [ebx + 4]
mov esi, dword [edx + eax*4]
xor eax, eax
cmp ecx, edi
jle 0x53f4f4
mov edi, dword [esi + 0x1c]
mov edx, dword [esp + 0xa8]
cmp dword [edx], edi
je 0x53f4e0
inc eax
add edx, 4
cmp eax, ecx
jl 0x53f4d2
jmp 0x53f4f2
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + eax*4]
inc edx
mov dword [ecx + eax*4], edx
mov dword [esi + 0x1c], eax
mov ecx, dword [esp + 0x20]
xor edi, edi
mov eax, dword [esp + 0x10]
mov edx, dword [ebx + 8]
inc eax
cmp eax, edx
mov dword [esp + 0x10], eax
jl 0x53f4bc
mov dword [esp + 0x90], 0x5e27fc
mov dword [esp + 0x94], edi
mov dword [esp + 0xa0], edi
mov dword [esp + 0x9c], edi
mov dword [esp + 0x98], edi
cmp ecx, edi
mov byte [esp + 0x290], 5
mov esi, ecx
jne 0x53f549
mov dword [esp + 0x9c], edi
mov dword [esp + 0x98], edi
jmp 0x53f575
lea eax, [ecx*4]
push eax
call sub.mfc42u.dll_operatornew
add esp, 4
mov dword [esp + 0x94], eax
push esi
push eax
call fcn.005463a0
mov dword [esp + 0x9c], esi
mov dword [esp + 0x98], esi
mov eax, dword [ebx + 8]
xor ecx, ecx
cmp eax, edi
jle 0x53f5a0
mov edx, dword [ebx + 4]
mov eax, dword [edx + ecx*4]
cmp dword [eax + 0x18], edi
jne 0x53f598
mov eax, dword [eax + 0x1c]
mov edx, dword [esp + 0x94]
lea eax, [edx + eax*4]
inc dword [eax]
mov eax, dword [ebx + 8]
inc ecx
cmp ecx, eax
jl 0x53f57e
lea ecx, [esp + 0x168]
call fcn.00527e70
mov esi, 0x5e2824
mov dword [esp + 0x110], edi
mov dword [esp + 0x10c], esi
mov dword [esp + 0x11c], edi
mov dword [esp + 0x118], edi
mov dword [esp + 0x114], edi
lea eax, [esp + 0xa4]
lea ecx, [esp + 0x2c]
push eax
lea edx, [esp + 0x110]
push ecx
mov ecx, dword [ebp + 0x48]
lea eax, [esp + 0x20]
push edx
mov edx, dword [ebp + 0x44]
push eax
mov eax, dword [ebp + 0x14]
push ecx
mov ecx, dword [ebp + 0x10]
push edx
push eax
push ecx
lea ecx, [ebp + 0x20]
mov byte [esp + 0x2b0], 7
call fcn.004b7060
sub esp, 8
lea ecx, [esp + 0x190]
fstp qword [esp]
push 1
push edi
push edi
push 1
call fcn.0052d1b0
lea edx, [esp + 0xa4]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x1c]
push eax
lea edx, [ebp + 0x20]
push ecx
push edx
lea ecx, [esp + 0x178]
call fcn.0052e170
mov ecx, dword [esp + 0x34]
xor eax, eax
cmp ecx, edi
jle 0x53f66c
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x30]
mov edx, dword [edx + eax*4]
sub dword [ecx + eax*4], edx
mov ecx, dword [esp + 0x34]
inc eax
cmp eax, ecx
jl 0x53f652
lea ecx, [esp + 0x54]
call sub.mfc42u.dll_CString::CString_3
push edi
lea eax, [esp + 0x58]
push edi
push eax
mov byte [esp + 0x29c], 8
call fcn.00436a50
add esp, 0xc
test al, al
jne 0x53f7d9
lea ecx, [esp + 0x54]
mov byte [esp + 0x290], 7
call sub.mfc42u.dll_CString::CString
mov dword [esp + 0x10c], esi
mov eax, dword [esp + 0x110]
mov byte [esp + 0x290], 9
cmp eax, edi
je 0x53f6c8
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
mov ebx, 0x5e262c
lea ecx, [esp + 0x168]
mov dword [esp + 0x10c], ebx
mov byte [esp + 0x290], 5
call fcn.00527f70
mov dword [esp + 0x90], 0x5e27fc
mov eax, dword [esp + 0x94]
mov byte [esp + 0x290], 0xa
cmp eax, edi
je 0x53f70f
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
mov dword [esp + 0x90], ebx
mov dword [esp + 0x5c], 0x5f0894
mov eax, dword [esp + 0x60]
mov byte [esp + 0x290], 0xb
cmp eax, edi
je 0x53f737
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x2c], 0x5e27fc
mov eax, dword [esp + 0x30]
mov byte [esp + 0x290], 0xc
cmp eax, edi
je 0x53f75c
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
mov dword [esp + 0x2c], ebx
mov dword [esp + 0xa4], 0x5e27fc
mov eax, dword [esp + 0xa8]
mov byte [esp + 0x290], 0xd
cmp eax, edi
je 0x53f787
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x290], 0xe
cmp eax, edi
je 0x53f7ab
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
lea ecx, [ebp + 0x20]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x290], 0xffffffff
call fcn.0042bd50
xor eax, eax
mov ecx, dword [esp + 0x288]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 8]
xor esi, esi
cmp eax, edi
jle 0x53f7f6
mov ecx, dword [ebx + 4]
push edi
mov ecx, dword [ecx + esi*4]
mov edx, dword [ecx]
call dword [edx + 0x1c]
mov eax, dword [ebx + 8]
inc esi
cmp esi, eax
jl 0x53f7e2
mov dword [esp + 0xe4], 0x5f0828
mov dword [esp + 0xe8], edi
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf0], edi
mov dword [esp + 0xec], edi
mov eax, dword [ebp + 0x40]
mov byte [esp + 0x290], 0xf
cmp eax, 2
mov dword [0x6207b8], 0xeb851eb8
mov dword [0x6207bc], 0x3f9eb851
mov dword [0x620748], 0x66666666
mov dword [0x62074c], 0x3ffe6666
jle 0x53f85a
mov eax, 2
push edi
push edi
push edi
push edi
push eax
lea ecx, [esp + 0x17c]
call fcn.005280d0
lea eax, [esp + 0xe4]
lea ecx, [esp + 0x90]
push eax
push ebx
lea edx, [esp + 0x34]
push ecx
lea eax, [esp + 0x24]
push edx
push eax
lea edx, [ebp + 0x20]
sub esp, 0x20
mov ecx, esp
mov dword [esp + 0x114], esp
push edx
call fcn.004b6cb0
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x19c]
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
shl eax, 2
push eax
push edi
mov dword [esp + 0x11c], eax
call fcn.0053e1b0
mov eax, dword [esp + 0x20]
xor esi, esi
cmp eax, edi
mov dword [esp + 0x44], 0
fstp st(0)
mov dword [esp + 0x48], 0
jle 0x53f8fe
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov ecx, dword [ecx + esi*4]
lea ebx, [eax + esi*4]
call fcn.0050b080
fimul dword [ebx]
mov eax, dword [esp + 0x20]
inc esi
cmp esi, eax
fadd qword [esp + 0x44]
fstp qword [esp + 0x44]
jl 0x53f8d8
mov dword [esp + 0x7c], 0x5f0880
mov dword [esp + 0x80], edi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x84], edi
mov eax, dword [esp + 0xec]
mov byte [esp + 0x290], 0x10
cmp eax, edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x10], edi
jle 0x53fc45
mov dword [esp + 0x40], edi
jmp 0x53f949
xor edi, edi
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x58]
lea ebx, [edx + eax]
mov dword [esp + 0x78], ebx
mov eax, dword [ebx + 8]
cmp ecx, eax
jg 0x53f96a
mov dword [esp + 0x58], eax
cmp word [ebx + 0xc], 4
jne 0x53fa04
mov ecx, dword [ebx + 0x58]
call fcn.0056c990
mov ecx, dword [ebx + 0x58]
mov eax, dword [esp + 0x84]
mov edx, dword [ebx + 8]
mov esi, dword [ecx + 0xd8]
lea ecx, [eax - 1]
cmp ecx, edi
jl 0x53f9b5
mov ebx, dword [esp + 0x80]
lea eax, [ecx + ecx*2]
lea eax, [ebx + eax*8]
cmp dword [eax + 8], edx
jne 0x53f9b5
cmp dword [eax], esi
je 0x53f9f6
dec ecx
sub eax, 0x18
cmp ecx, edi
jge 0x53f9a4
fstp qword [esp + 0x160]
lea ecx, [esp + 0x150]
mov dword [esp + 0x158], edx
push ecx
lea ecx, [esp + 0x80]
mov dword [esp + 0x158], 1
mov dword [esp + 0x154], esi
mov byte [esp + 0x160], 1
call fcn.00545400
jmp 0x53fc20
fadd qword [eax + 0x10]
inc dword [eax + 4]
fstp qword [eax + 0x10]
jmp 0x53fc20
movsx eax, word [ebx + 0xe]
mov dword [esp + 0x74], edi
lea ecx, [eax + eax*4]
lea edx, [ecx + ecx*8]
mov ecx, dword [esp + 0x18c]
lea eax, [eax + edx*2]
cmp word [ecx + eax*8 + 0xa], di
lea eax, [ecx + eax*8]
mov dword [esp + 0x70], eax
jle 0x53fae9
mov edx, eax
lea esi, [edx + 0xc]
movsx eax, word [esi]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + eax*4]
call fcn.0050b080
movsx edx, word [esi + 0x20]
movsx eax, word [ebx + 0x14]
mov ecx, dword [esp + 0x84]
imul edx, eax
lea eax, [ecx - 1]
mov dword [esp + 0x50], edx
test eax, eax
jl 0x53fa87
mov edi, dword [esp + 0x80]
lea ecx, [eax + eax*2]
lea ecx, [edi + ecx*8]
mov edi, dword [ebx + 8]
cmp dword [ecx + 8], edi
jne 0x53fa87
movsx edi, word [esi]
cmp dword [ecx], edi
je 0x53fb76
dec eax
sub ecx, 0x18
test eax, eax
jge 0x53fa6c
fild dword [esp + 0x50]
mov eax, dword [ebx + 8]
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], eax
lea edx, [esp + 0x120]
movsx eax, word [esi]
fmul st(1)
push edx
lea ecx, [esp + 0x80]
mov dword [esp + 0x124], eax
mov byte [esp + 0x130], 1
fstp qword [esp + 0x134]
fstp st(0)
call fcn.00545400
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
inc eax
add esi, 2
movsx edx, word [ecx + 0xa]
cmp eax, edx
mov dword [esp + 0x74], eax
jl 0x53fa33
cmp word [ebx + 0x16], 0
je 0x53fc20
mov eax, dword [esp + 0x70]
mov dword [esp + 0x74], 0
cmp word [eax + 8], 0
jle 0x53fc20
mov ecx, eax
lea edx, [ebx + 0x18]
add ecx, 0x4c
mov dword [esp + 0xc], edx
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0xc]
cmp word [eax], 0
je 0x53fbf1
mov edi, dword [esp + 0x50]
mov ecx, dword [edi]
call fcn.0056c990
mov ecx, dword [esp + 0xc]
mov eax, dword [edi]
mov esi, dword [ebx + 8]
movsx edx, word [ecx]
mov ecx, dword [esp + 0x84]
mov edi, dword [eax + 0xd8]
dec ecx
mov dword [esp + 0x14], edx
test ecx, ecx
jl 0x53fbb1
mov ebx, dword [esp + 0x80]
lea eax, [ecx + ecx*2]
lea eax, [ebx + eax*8]
cmp dword [eax + 8], esi
jne 0x53fbad
cmp dword [eax], edi
je 0x53fb91
dec ecx
sub eax, 0x18
test ecx, ecx
jge 0x53fb63
jmp 0x53fbad
fild dword [esp + 0x50]
mov eax, dword [ecx + 4]
add eax, edx
fmul st(1)
mov dword [ecx + 4], eax
fadd qword [ecx + 0x10]
fstp qword [ecx + 0x10]
fstp st(0)
jmp 0x53facd
fild dword [esp + 0x14]
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x78]
add ecx, edx
fmul st(1)
mov dword [eax + 4], ecx
fadd qword [eax + 0x10]
fstp qword [eax + 0x10]
fstp st(0)
jmp 0x53fbf1
mov ebx, dword [esp + 0x78]
fild dword [esp + 0x14]
lea ecx, [esp + 0x138]
mov dword [esp + 0x140], esi
push ecx
lea ecx, [esp + 0x80]
fmul st(1)
mov dword [esp + 0x140], edx
mov dword [esp + 0x13c], edi
mov byte [esp + 0x148], 1
fstp qword [esp + 0x14c]
fstp st(0)
call fcn.00545400
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x50]
movsx ecx, word [edx + 8]
inc eax
add edi, 2
add esi, 4
cmp eax, ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0xc], edi
mov dword [esp + 0x50], esi
jl 0x53fb1b
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0xec]
inc eax
add edx, 0x60
cmp eax, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x40], edx
jl 0x53f947
xor edi, edi
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x80]
inc ecx
mov dword [esp + 0x58], ecx
lea ecx, [eax - 1]
xor ebx, ebx
cmp ecx, edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ebx
jle 0x53fd61
jmp 0x53fc7b
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
dec ecx
mov dword [esp + 0xc], 0
cmp ebx, ecx
mov dword [esp + 0x40], ecx
jg 0x53fce2
mov eax, dword [esp + 0x14]
lea edx, [ebx + ebx*2 + 3]
lea edx, [eax + edx*8]
fld qword [edx - 8]
fcomp qword [edx + 0x10]
fnstsw ax
test ah, 0x41
jne 0x53fcda
lea eax, [edx - 0x18]
mov ecx, 6
mov esi, eax
lea edi, [esp + 0x120]
rep movsd dword es:[edi], dword [esi]
mov ecx, 6
mov esi, edx
mov edi, eax
mov dword [esp + 0xc], ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, 6
lea esi, [esp + 0x120]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x40]
inc ebx
add edx, 0x18
cmp ebx, ecx
jle 0x53fc97
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
inc ecx
mov dword [esp + 0x10], 0
cmp esi, ecx
mov dword [esp + 0x40], ecx
mov ebx, esi
jl 0x53fd57
mov eax, dword [esp + 0x14]
lea edx, [esi + esi*2]
lea edx, [eax + edx*8 - 0x18]
fld qword [edx + 0x10]
fcomp qword [edx + 0x28]
fnstsw ax
test ah, 0x41
jne 0x53fd4f
lea eax, [edx + 0x18]
mov ecx, 6
mov esi, eax
lea edi, [esp + 0x120]
rep movsd dword es:[edi], dword [esi]
mov ecx, 6
mov esi, edx
mov edi, eax
mov dword [esp + 0x10], ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, 6
lea esi, [esp + 0x120]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0xc]
dec ebx
sub edx, 0x18
cmp ebx, ecx
jge 0x53fd08
cmp dword [esp + 0x10], esi
jl 0x53fc73
fild dword [ebp + 8]
mov esi, 0x5e27fc
xor ebx, ebx
mov dword [esp + 0xcc], esi
mov dword [esp + 0xd0], ebx
fsub qword [0x5e79a0]
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xd4], ebx
fdivr qword [esp + 0x44]
fstp qword [esp + 0x44]
mov ecx, dword [esp + 0x20]
push 0xffffffffffffffff
push ecx
lea ecx, [esp + 0xd4]
mov byte [esp + 0x298], 0x11
call fcn.0046d900
mov ecx, dword [esp + 0xd4]
xor eax, eax
cmp ecx, ebx
jle 0x53fddf
mov edx, dword [esp + 0xd0]
inc eax
mov dword [edx + eax*4 - 4], 0xffffffff
mov ecx, dword [esp + 0xd4]
cmp eax, ecx
jl 0x53fdc4
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc0], ebx
mov eax, dword [esp + 0x34]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0xc0]
mov byte [esp + 0x298], 0x12
call fcn.0046d900
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0xbc]
cmp edx, ebx
je 0x53fe3d
mov esi, dword [ecx]
add ecx, 4
mov dword [eax], esi
add eax, 4
dec edx
jne 0x53fe30
mov eax, dword [ebp + 8]
xor esi, esi
cmp eax, ebx
jle 0x53fe90
lea edi, [esp + 0x238]
lea ecx, [esp + 0xcc]
lea edx, [esp + 0x7c]
push ecx
lea eax, [esp + 0xbc]
push edx
mov edx, dword [esp + 0x50]
lea ecx, [esp + 0x20]
push eax
mov eax, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x68]
push edx
push eax
push ecx
push esi
call fcn.0053ec90
fsubr qword [esp + 0x64]
mov eax, dword [ebp + 8]
add esp, 0x20
inc esi
fstp qword [edi]
add edi, 8
cmp esi, eax
jl 0x53fe4d
mov dword [esp + 0xf8], 0x5e27fc
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x108], ebx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x100], ebx
mov edx, dword [esp + 0x58]
push 0xffffffffffffffff
push edx
lea ecx, [esp + 0x100]
mov byte [esp + 0x298], 0x13
call fcn.0046d900
mov eax, dword [esp + 0x20]
xor esi, esi
cmp eax, ebx
jle 0x53ff46
mov eax, dword [esp + 0xd0]
lea edi, [eax + esi*4]
mov eax, dword [eax + esi*4]
cmp eax, 0xffffffff
jne 0x53ff3d
mov ecx, dword [esp + 0xbc]
lea edx, [esp + 0xf8]
lea eax, [esp + 0x7c]
push edx
lea ebx, [ecx + esi*4]
lea ecx, [esp + 0xd0]
push eax
lea edx, [esp + 0x20]
push ecx
mov ecx, dword [ebp + 8]
push edx
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x248]
push eax
push ecx
mov ecx, dword [edx + esi*4]
call fcn.0050b080
fimul dword [ebx]
sub esp, 8
fstp qword [esp]
push esi
call fcn.0053ea00
add esp, 0x24
mov dword [edi], eax
mov eax, dword [esp + 0x20]
inc esi
cmp esi, eax
jl 0x53fedc
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push ecx
mov ecx, dword [ebp + 0x40]
push edx
push eax
push ecx
lea ecx, [esp + 0x17c]
call fcn.005280d0
push 0x62075c
mov dword [0x620748], 0xc28f5c29
mov dword [0x62074c], 0x3ff028f5
call dword [sym.imp.kernel32.dll_OutputDebugStringW]
mov eax, dword [ebp + 8]
xor esi, esi
test eax, eax
jle 0x5401c2
mov edi, dword [ebp + 0x50]
mov ebx, dword [ebp + 0x4c]
mov ecx, dword [esp + 0x20]
xor eax, eax
test ecx, ecx
jle 0x53ffd8
mov edx, dword [esp + 0xd0]
cmp dword [edx + eax*4], esi
jne 0x53ffc1
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + eax*4]
mov ecx, dword [esp + 0xbc]
mov dword [ecx + eax*4], edx
jmp 0x53ffcf
mov edx, dword [esp + 0xbc]
mov dword [edx + eax*4], 0
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
jl 0x53ffa2
lea eax, [esp + 0xe4]
lea ecx, [esp + 0x90]
push eax
push ebx
lea edx, [esp + 0xc0]
push ecx
lea eax, [esp + 0x24]
push edx
push eax
lea edx, [ebp + 0x20]
sub esp, 0x20
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
call fcn.004b6cb0
mov eax, dword [esp + 0x114]
lea ecx, [esp + 0x19c]
push eax
push 1
call fcn.0053e1b0
fstp qword [esp + 0x44]
push 0
lea ecx, [esp + 0x58]
push 0
push ecx
call fcn.00436a50
add esp, 0xc
test al, al
je 0x54006d
push 0x620750
call dword [sym.imp.kernel32.dll_OutputDebugStringW]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [edi], edx
mov ecx, edx
mov dword [edi + 4], eax
mov edx, eax
mov eax, dword [ebp + 8]
inc esi
add edi, 8
cmp esi, eax
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x24], edx
jl 0x53ff98
jmp 0x5401c5
mov edi, 0x5e27fc
mov dword [esp + 0xf8], edi
mov eax, dword [esp + 0xfc]
mov byte [esp + 0x290], 0x14
test eax, eax
je 0x540095
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
mov ebx, 0x5e262c
mov dword [esp + 0xb8], edi
mov dword [esp + 0xf8], ebx
mov eax, dword [esp + 0xbc]
mov byte [esp + 0x290], 0x15
test eax, eax
je 0x5400c4
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
lea ecx, [esp + 0xcc]
mov dword [esp + 0xb8], ebx
mov byte [esp + 0x290], 0x10
call fcn.0040a7f0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x290], 0xf
call fcn.00545580
lea ecx, [esp + 0xe4]
mov byte [esp + 0x290], 8
call fcn.00544920
lea ecx, [esp + 0x54]
mov byte [esp + 0x290], 7
call sub.mfc42u.dll_CString::CString
lea ecx, [esp + 0x10c]
mov byte [esp + 0x290], 6
call fcn.0040bf90
lea ecx, [esp + 0x168]
mov byte [esp + 0x290], 5
call fcn.00527f70
lea ecx, [esp + 0x90]
mov byte [esp + 0x290], 4
call fcn.0040a7f0
lea ecx, [esp + 0x5c]
mov byte [esp + 0x290], 3
call fcn.005457a0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x290], 2
call fcn.0040a7f0
lea ecx, [esp + 0xa4]
mov byte [esp + 0x290], 1
call fcn.0040a7f0
lea ecx, [esp + 0x18]
mov byte [esp + 0x290], 0
call fcn.0040bf90
lea ecx, [ebp + 0x20]
mov dword [esp + 0x290], 0xffffffff
call fcn.0042bd50
mov eax, esi
mov ecx, dword [esp + 0x288]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 0x4c]
mov eax, dword [ebx + 8]
xor esi, esi
test eax, eax
jle 0x5401e3
mov eax, dword [ebx + 4]
push 1
mov ecx, dword [eax + esi*4]
mov edx, dword [ecx]
call dword [edx + 0x1c]
mov eax, dword [ebx + 8]
inc esi
cmp esi, eax
jl 0x5401ce
push 0
lea eax, [esp + 0x58]
push 1
push eax
call fcn.00436a50
add esp, 0xc
lea ecx, [esp + 0xf8]
mov byte [esp + 0x290], 0x12
call fcn.0040a7f0
lea ecx, [esp + 0xb8]
mov byte [esp + 0x290], 0x11
call fcn.0040a7f0
lea ecx, [esp + 0xcc]
mov byte [esp + 0x290], 0x10
call fcn.0040a7f0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x290], 0xf
call fcn.00545580
lea ecx, [esp + 0xe4]
mov byte [esp + 0x290], 8
call fcn.00544920
lea ecx, [esp + 0x54]
mov byte [esp + 0x290], 7
call sub.mfc42u.dll_CString::CString
lea ecx, [esp + 0x10c]
mov byte [esp + 0x290], 6
call fcn.0040bf90
lea ecx, [esp + 0x168]
mov byte [esp + 0x290], 5
call fcn.00527f70
lea ecx, [esp + 0x90]
mov byte [esp + 0x290], 4
call fcn.0040a7f0
lea ecx, [esp + 0x5c]
mov byte [esp + 0x290], 3
call fcn.005457a0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x290], 2
call fcn.0040a7f0
lea ecx, [esp + 0xa4]
mov byte [esp + 0x290], 1
call fcn.0040a7f0
lea ecx, [esp + 0x18]
mov byte [esp + 0x290], 0
call fcn.0040bf90
lea ecx, [ebp + 0x20]
mov dword [esp + 0x290], 0xffffffff
call fcn.0042bd50
mov ecx, dword [esp + 0x288]
mov eax, dword [ebp + 8]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret