Function at 0x46d4a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1d600
call fcn.004b04c0
push ebx
push esi
push edi
mov esi, ecx
call fcn.004c9206
test eax, eax
je 0x46d4cb
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
mov dword [esp + 0x60], eax
jmp 0x46d4d3
mov dword [esp + 0x60], 0
mov edi, dword [esi + 0xebd50]
lea eax, [edi + edi*4]
lea ecx, [edi + eax*2]
shl ecx, 4
lea eax, [ecx + esi + 0xf1d56]
mov ecx, dword [esi + edi*4 + 0xeb5d0]
mov dword [esp + 0x64], eax
movsx eax, word [eax]
test ecx, ecx
mov dword [esp + 0x34], eax
je 0x46e59d
mov ebx, dword [ebp + 0x10]
cmp ebx, eax
jge 0x46e59d
mov edx, dword [ebp + 0x14]
cmp edx, eax
jge 0x46e59d
cmp ebx, edx
mov dword [esp + 0x68], 0
jne 0x46d538
xor ebx, ebx
lea edx, [eax - 1]
mov dword [esp + 0x68], 1
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], edx
mov ecx, dword [esi + edi*4 + 0xf7438]
mov eax, dword [ecx + ebx*4]
and eax, 0xf
cmp al, 2
je 0x46e588
mov ecx, dword [ecx + edx*4]
and ecx, 0xf
cmp cl, 2
je 0x46e588
test edx, edx
jne 0x46d568
mov edx, dword [esp + 0x34]
dec edx
mov dword [ebp + 0x14], edx
cmp ebx, edx
jle 0x46d57e
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [ebp + 0x10], edx
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0xc], ecx
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
shl edx, 3
push edx
call fcn.004c8844
add esp, 4
mov dword [esp + 0x2c], eax
mov eax, ebx
mov ecx, esi
push 0
push 0
push 1
push 1
push 1
push eax
mov dword [esp + 0x78], 0
call fcn.0048b550
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x30]
mov dword [esp + 0x14], 0
mov eax, edx
sub eax, ebx
cmp eax, 1
jle 0x46dc2f
lea ecx, [esp + 0x14c]
push ecx
push ebx
push eax
mov ecx, esi
call fcn.004733e0
dec eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x34], eax
lea eax, [ebx + 1]
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], eax
js 0x46db46
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
add eax, 0xffffffd8
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x46d785
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov byte [edx + 0x20], 1
cmp eax, ecx
fild dword [esp + 0x154]
fstp qword [esp + 0x44]
fild dword [esp + 0x158]
fstp qword [esp + 0x54]
fild dword [esp + 0x14c]
fstp qword [esp + 0x4c]
fild dword [esp + 0x150]
fstp qword [esp + 0x3c]
je 0x46d6be
mov eax, dword [ebp + 0x10]
push ebx
push eax
mov ecx, esi
call fcn.0047f6f0
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
sub eax, edx
mov ecx, dword [ebp + 0x14]
cdq
xor eax, edx
push ecx
sub eax, edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x28], eax
push edx
fild dword [esp + 0x2c]
mov ecx, esi
fmulp st(1)
fstp qword [esp + 0x2c]
call fcn.0047f6f0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
fdivr qword [esp + 0x24]
cmp ecx, eax
jle 0x46d6b6
call fcn.004b03b4
mov ecx, dword [ebp + 8]
sub ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x46d6c2
call fcn.004b03b4
add eax, dword [ebp + 8]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push eax
push ebx
push ecx
mov ecx, esi
call fcn.0046ed50
fild dword [esp + 0x158]
lea edx, [esp + 0x124]
mov eax, dword [esp + 0xc]
push edx
mov ecx, dword [esp + 0x28]
sub esp, 8
fstp qword [esp]
fild dword [esp + 0x160]
sub esp, 8
fstp qword [esp]
fild dword [esp + 0x174]
sub esp, 8
fstp qword [esp]
fild dword [esp + 0x178]
sub esp, 8
fstp qword [esp]
push eax
push ecx
mov ecx, esi
call fcn.0046ed50
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x124]
push edx
push eax
push ebx
push edi
mov ecx, esi
call fcn.0048cd10
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x14], eax
mov eax, 0x28
add edx, eax
add ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ecx
cmp eax, dword [esp + 0x34]
jne 0x46d8a3
mov ecx, dword [esp + 0x10]
mov byte [ecx + 0x20], 1
mov ecx, dword [ebp + 8]
fild dword [esp + eax*8 + 0x14c]
fstp qword [esp + 0x44]
fild dword [esp + eax*8 + 0x150]
fstp qword [esp + 0x54]
fild dword [esp + eax*8 + 0x154]
fstp qword [esp + 0x4c]
fild dword [esp + eax*8 + 0x158]
cmp ecx, dword [ebp + 0xc]
fstp qword [esp + 0x3c]
je 0x46d82b
mov edx, dword [esp + 0x30]
mov eax, dword [ebp + 0x10]
push edx
push eax
mov ecx, esi
call fcn.0047f6f0
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
sub eax, edx
mov ecx, dword [ebp + 0x14]
cdq
xor eax, edx
push ecx
sub eax, edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x28], eax
push edx
fild dword [esp + 0x2c]
mov ecx, esi
fmulp st(1)
fstp qword [esp + 0x2c]
call fcn.0047f6f0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
fdivr qword [esp + 0x24]
cmp ecx, eax
jle 0x46d81f
call fcn.004b03b4
mov ecx, dword [ebp + 8]
sub ecx, eax
jmp 0x46d82b
call fcn.004b03b4
mov ecx, eax
mov eax, dword [ebp + 8]
add ecx, eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x50]
dec eax
push edx
push eax
push ecx
mov ecx, esi
call fcn.0046ed50
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
push ecx
push edx
push eax
push edi
mov ecx, esi
call fcn.0048cd10
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x14], eax
mov eax, 0x28
add edx, eax
add ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ecx
mov edx, dword [esi + edi*4 + 0xf7078]
mov ecx, dword [esp + 0xc]
mov edx, dword [edx + ecx*4]
cmp edx, dword [esp + eax*8 + 0x14c]
jne 0x46d9ec
mov edx, dword [esi + edi*4 + 0xf7258]
mov edx, dword [edx + ecx*4]
lea ecx, [esp + eax*8 + 0x150]
cmp edx, dword [ecx]
jne 0x46d9ec
mov edx, dword [esp + 0x10]
mov byte [edx + 0x20], 1
fild dword [esp + eax*8 + 0x144]
fstp qword [esp + 0x44]
fild dword [ecx - 8]
fstp qword [esp + 0x54]
fild dword [esp + eax*8 + 0x14c]
mov eax, dword [ebp + 0xc]
fstp qword [esp + 0x4c]
fild dword [ecx]
mov ecx, dword [ebp + 8]
cmp ecx, eax
fstp qword [esp + 0x3c]
je 0x46d96c
mov eax, dword [esp + 0xc]
mov ecx, dword [ebp + 0x10]
push eax
push ecx
mov ecx, esi
call fcn.0047f6f0
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
sub eax, edx
mov ecx, esi
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x10]
fild dword [esp + 0x24]
push edx
push eax
fmulp st(1)
fstp qword [esp + 0x2c]
call fcn.0047f6f0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
fdivr qword [esp + 0x24]
cmp eax, ecx
jle 0x46d960
call fcn.004b03b4
mov ecx, dword [ebp + 8]
sub ecx, eax
jmp 0x46d96c
call fcn.004b03b4
mov ecx, eax
mov eax, dword [ebp + 8]
add ecx, eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x2c]
push edx
push eax
push ecx
mov ecx, esi
call fcn.0046ed50
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
push ecx
push edx
push eax
push edi
mov ecx, esi
call fcn.0048cd10
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x14], eax
mov eax, 0x28
add edx, eax
add ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], edx
inc eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov edx, dword [esi + edi*4 + 0xf7078]
mov ecx, dword [esp + 0xc]
mov edx, dword [edx + ecx*4]
cmp edx, dword [esp + eax*8 + 0x14c]
jne 0x46db35
mov edx, dword [esi + edi*4 + 0xf7258]
mov edx, dword [edx + ecx*4]
lea ecx, [esp + eax*8 + 0x150]
cmp edx, dword [ecx]
jne 0x46db35
mov edx, dword [esp + 0x10]
mov byte [edx + 0x20], 1
fild dword [esp + eax*8 + 0x144]
fstp qword [esp + 0x44]
fild dword [ecx - 8]
fstp qword [esp + 0x54]
fild dword [esp + eax*8 + 0x14c]
mov eax, dword [ebp + 0xc]
fstp qword [esp + 0x4c]
fild dword [ecx]
mov ecx, dword [ebp + 8]
cmp ecx, eax
fstp qword [esp + 0x3c]
je 0x46dab5
mov eax, dword [esp + 0xc]
mov ecx, dword [ebp + 0x10]
push eax
push ecx
mov ecx, esi
call fcn.0047f6f0
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
sub eax, edx
mov ecx, esi
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x10]
fild dword [esp + 0x24]
push edx
push eax
fmulp st(1)
fstp qword [esp + 0x2c]
call fcn.0047f6f0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
fdivr qword [esp + 0x24]
cmp eax, ecx
jle 0x46daa9
call fcn.004b03b4
mov ecx, dword [ebp + 8]
sub ecx, eax
jmp 0x46dab5
call fcn.004b03b4
mov ecx, eax
mov eax, dword [ebp + 8]
add ecx, eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x2c]
push edx
push eax
push ecx
mov ecx, esi
call fcn.0046ed50
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
push ecx
push edx
push eax
push edi
mov ecx, esi
call fcn.0048cd10
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x14], eax
mov eax, 0x28
add edx, eax
add ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], edx
inc eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jle 0x46d61c
mov eax, dword [esp + 0x2c]
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
lea eax, [ebx + ebx*2]
mov dword [esp + 0x124], edx
mov edx, dword [esi + edi*4 + 0xf7618]
lea eax, [eax + eax*4]
lea eax, [eax + eax*8]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x124]
push eax
mov eax, dword [esp + 0x24]
push 1
push edx
push ecx
push eax
mov ecx, esi
call fcn.0045f3d0
mov ecx, dword [esp + 0x30]
lea eax, [ebx + 2]
inc ecx
cmp eax, ecx
jge 0x46dbdd
mov ecx, eax
sub ecx, ebx
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x2c]
lea edx, [ecx + edx*8 - 0xc]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + edi*4 + 0xf7078]
inc eax
mov edx, dword [edx - 4]
mov dword [ecx + eax*4 - 4], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + edi*4 + 0xf7258]
mov edx, dword [edx]
mov dword [ecx + eax*4 - 4], edx
mov ecx, dword [esp + 0x24]
add ecx, 0x28
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x30]
inc ecx
cmp eax, ecx
jl 0x46dba5
mov eax, dword [esp + 0x14]
push 0xffffffffffffffff
push 0xffffffffffffffff
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x34]
lea eax, [eax + edx*8]
mov edx, dword [eax - 0x10]
mov eax, dword [eax - 0xc]
mov dword [esp + 0x84], eax
lea eax, [ecx + ecx*2]
mov dword [esp + 0x80], edx
lea eax, [eax + eax*4]
lea edx, [eax + eax*8]
mov eax, dword [esi + edi*4 + 0xf7618]
lea edx, [eax + edx*4]
mov eax, dword [esp + 0x84]
push edx
mov edx, dword [esp + 0x84]
push 1
push eax
push edx
push ecx
jmp 0x46dea1
mov eax, dword [esp + 0x2c]
mov byte [eax + 0x20], 1
mov eax, dword [esi + edi*4 + 0xf7078]
mov ecx, dword [esi + edi*4 + 0xf7258]
fild dword [eax + edx*4]
fstp qword [esp + 0x44]
fild dword [ecx + edx*4]
fstp qword [esp + 0x54]
fild dword [eax + ebx*4]
mov eax, dword [ebp + 0xc]
fstp qword [esp + 0x4c]
fild dword [ecx + ebx*4]
mov ecx, dword [ebp + 8]
cmp ecx, eax
fstp qword [esp + 0x3c]
je 0x46dcc7
mov ecx, dword [ebp + 0x10]
push ebx
push ecx
mov ecx, esi
call fcn.0047f6f0
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
sub eax, edx
mov ecx, esi
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x10]
fild dword [esp + 0x34]
push edx
push eax
fmulp st(1)
fstp qword [esp + 0x3c]
call fcn.0047f6f0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
fdivr qword [esp + 0x34]
cmp eax, ecx
jle 0x46dcbb
call fcn.004b03b4
mov ecx, dword [ebp + 8]
sub ecx, eax
jmp 0x46dcc7
call fcn.004b03b4
mov ecx, eax
mov eax, dword [ebp + 8]
add ecx, eax
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x60]
push eax
push edx
push ebx
push ecx
mov ecx, esi
call fcn.0046ed50
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
add eax, 0x28
mov byte [eax + 0x20], 1
mov eax, dword [esi + edi*4 + 0xf7078]
mov ecx, dword [esi + edi*4 + 0xf7258]
fild dword [eax + ebx*4]
fstp qword [esp + 0x44]
fild dword [ecx + ebx*4]
fstp qword [esp + 0x54]
fild dword [eax + edx*4]
mov eax, dword [ebp + 8]
fstp qword [esp + 0x4c]
fild dword [ecx + edx*4]
mov ecx, dword [ebp + 0xc]
cmp eax, ecx
fstp qword [esp + 0x3c]
jne 0x46dd44
mov ecx, eax
jmp 0x46dda4
mov edx, dword [esp + 0x30]
mov eax, dword [ebp + 0x10]
push edx
push eax
mov ecx, esi
call fcn.0047f6f0
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
sub eax, edx
mov ecx, dword [ebp + 0x14]
cdq
xor eax, edx
push ecx
sub eax, edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x38], eax
push edx
fild dword [esp + 0x3c]
mov ecx, esi
fmulp st(1)
fstp qword [esp + 0x3c]
call fcn.0047f6f0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
fdivr qword [esp + 0x34]
cmp ecx, eax
jle 0x46dd98
call fcn.004b03b4
mov ecx, dword [ebp + 8]
sub ecx, eax
jmp 0x46dda4
call fcn.004b03b4
mov ecx, eax
mov eax, dword [ebp + 8]
add ecx, eax
mov edx, dword [esp + 0x2c]
lea eax, [edx + 0x28]
mov edx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x60]
push eax
push edx
push ebx
push ecx
mov ecx, esi
call fcn.0046ed50
mov eax, dword [esp + 0x2c]
add eax, 0x28
push eax
lea ecx, [eax - 0x28]
push ecx
mov dword [esp + 0x3c], ecx
push ebx
push edi
mov ecx, esi
call fcn.0048cd10
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
push ecx
mov ecx, esi
lea eax, [edx + 0x28]
push eax
mov eax, dword [esp + 0x38]
push eax
push edi
call fcn.0048cd10
mov eax, dword [esp + 0x2c]
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
lea eax, [ebx + 1]
mov dword [esp + 0x114], edx
mov dword [esp + 0x20], eax
lea eax, [ebx + ebx*2]
lea eax, [eax + eax*4]
lea edx, [eax + eax*8]
mov eax, dword [esi + edi*4 + 0xf7618]
lea edx, [eax + edx*4]
mov eax, dword [esp + 0x114]
push edx
push 1
push eax
push ecx
mov ecx, dword [esp + 0x30]
push ecx
mov ecx, esi
call fcn.0045f3d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
push 0xffffffffffffffff
push 0xffffffffffffffff
mov edx, dword [eax + 0x40]
mov eax, dword [eax + 0x44]
mov dword [esp + 0x90], eax
lea eax, [ecx + 1]
mov dword [esp + 0x8c], edx
lea ecx, [eax + eax*2]
lea ecx, [ecx + ecx*4]
lea edx, [ecx + ecx*8]
mov ecx, dword [esi + edi*4 + 0xf7618]
lea edx, [ecx + edx*4]
push edx
push 1
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x94]
push ecx
push edx
push eax
mov ecx, esi
call fcn.0045f3d0
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xc], 2
cmp ebx, eax
je 0x46e157
lea eax, [esp + 0x120]
lea ecx, [esp + 0x98]
push eax
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0xd4]
push ecx
push edx
push 0x408f4000
push 0
push eax
mov ecx, esi
call fcn.00476010
lea ecx, [esp + 0xf0]
lea edx, [esp + 0x8c]
push ecx
lea ecx, [esp + 0xbc]
push edx
push ecx
lea eax, [ebx - 1]
push 0xc08f4000
push 0
push eax
mov ecx, esi
mov dword [esp + 0x38], eax
call fcn.00476010
mov eax, dword [esi + edi*4 + 0xf7078]
mov ecx, dword [esi + edi*4 + 0xf7258]
mov edx, dword [eax + ebx*4 - 4]
mov dword [esp + 0x90], edx
mov edx, dword [ecx + ebx*4 - 4]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x18]
mov eax, dword [eax + edx*4]
mov ecx, dword [ecx + edx*4]
lea edx, [esp + 0xdc]
push edx
mov edx, dword [esp + 0x98]
push edx
mov edx, dword [esp + 0x98]
push edx
mov edx, dword [esp + 0x98]
push edx
mov edx, dword [esp + 0xc8]
push edx
push ecx
push eax
mov eax, dword [esp + 0xb4]
push eax
mov eax, dword [esp + 0xf0]
push eax
mov ecx, esi
call fcn.0048cbd0
test eax, eax
je 0x46e137
mov eax, dword [esi + edi*4 + 0xf7078]
mov ecx, dword [esp + 0xdc]
push 0
push 0
mov dword [eax + ebx*4], ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esi + edi*4 + 0xf7258]
mov eax, dword [esp + 0xe8]
push 1
push 1
push 0xffffffffffffffff
push ecx
mov ecx, esi
mov dword [edx + ebx*4], eax
call fcn.0048b550
mov edx, dword [esp + 0x18]
push 0
push 0
push 1
push 1
push 1
push edx
mov ecx, esi
mov dword [esp + 0x34], eax
call fcn.0048b550
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov eax, dword [esi + edi*4 + 0xf7078]
mov ecx, dword [eax + edx*4]
mov eax, dword [eax + ebx*4]
mov dword [esp + 0xe8], ecx
mov ecx, dword [esi + edi*4 + 0xf7258]
mov edx, dword [ecx + edx*4]
mov ecx, dword [ecx + ebx*4]
push edx
mov edx, dword [esp + 0xec]
push edx
push ecx
push eax
mov ecx, esi
call fcn.0048cef0
mov edx, dword [esp + 0x18]
mov dword [esp + 0x34], eax
mov eax, dword [esi + edi*4 + 0xf7078]
mov ecx, dword [eax + edx*4]
mov eax, dword [eax + ebx*4]
mov dword [esp + 0xf4], ecx
mov ecx, dword [esi + edi*4 + 0xf7258]
mov edx, dword [ecx + edx*4]
mov ecx, dword [ecx + ebx*4]
push edx
mov edx, dword [esp + 0xf8]
push edx
push ecx
push eax
mov ecx, esi
call fcn.0048cef0
mov edx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [esi + edi*4 + 0xf7078]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esi + edi*4 + 0xf7258]
mov edx, dword [ecx + edx*4]
mov dword [esp + 0xa0], edx
mov edx, dword [esp + 0x20]
mov eax, dword [eax + edx*4]
mov ecx, dword [ecx + edx*4]
mov edx, dword [esp + 0xa0]
push edx
mov edx, dword [esp + 0xa0]
push edx
push ecx
push eax
mov ecx, esi
call fcn.0048cef0
mov ecx, dword [esp + 0x34]
lea eax, [eax + eax*4]
cmp ecx, eax
jg 0x46e123
cmp dword [esp + 0x24], eax
jg 0x46e123
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
push eax
push ecx
push edx
push ebx
push edi
mov ecx, esi
call fcn.0048c770
test eax, eax
jne 0x46e10f
mov eax, dword [esi + edi*4 + 0xf7078]
mov edx, dword [esp + 0x18]
mov ecx, dword [eax + edx*4]
mov eax, dword [eax + ebx*4]
mov dword [esp + 0x100], ecx
mov ecx, dword [esi + edi*4 + 0xf7258]
mov edx, dword [ecx + edx*4]
mov ecx, dword [ecx + ebx*4]
push edx
mov edx, dword [esp + 0x104]
push edx
push ecx
push eax
mov ecx, esi
call fcn.0048cef0
cmp eax, 0x1388
jge 0x46e157
push 1
push ebx
mov ecx, esi
call fcn.00463450
mov eax, dword [esp + 0x18]
push 1
dec eax
push eax
jmp 0x46e148
push 1
push ebx
mov ecx, esi
call fcn.00463450
mov dword [esp + 0xc], 1
jmp 0x46e157
push 1
push ebx
mov ecx, esi
call fcn.00463450
mov ecx, dword [esp + 0x20]
push 1
push ecx
mov ecx, esi
call fcn.00463450
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x68]
test eax, eax
je 0x46e4f4
mov eax, dword [esp + 0x60]
test eax, eax
je 0x46e4f4
mov edx, dword [ebp + 0x10]
lea eax, [esp + 0xe4]
lea ecx, [esp + 0x80]
push eax
lea ebx, [edx + 1]
lea edx, [esp + 0xc8]
push ecx
push edx
push 0x408f4000
push 0
push ebx
mov ecx, esi
call fcn.00476010
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0xfc]
add eax, ecx
push edx
lea ecx, [esp + 0x78]
lea edx, [esp + 0xa8]
push ecx
mov dword [esp + 0x1c], eax
push edx
dec eax
push 0xc08f4000
push 0
push eax
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.00476010
mov eax, dword [esi + edi*4 + 0xf7078]
mov edx, dword [esp + 0x14]
mov ecx, dword [eax + edx*4 - 4]
mov eax, dword [eax + ebx*4]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esi + edi*4 + 0xf7258]
mov edx, dword [ecx + edx*4 - 4]
mov ecx, dword [ecx + ebx*4]
mov dword [esp + 0x114], ecx
lea ecx, [esp + 0x6c]
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0x74]
push ecx
mov ecx, dword [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0xb0]
push edx
mov edx, dword [esp + 0x124]
push ecx
push edx
push eax
mov eax, dword [esp + 0x9c]
push eax
mov eax, dword [esp + 0xe4]
push eax
mov ecx, esi
call fcn.0048cbd0
test eax, eax
mov eax, dword [esi + edi*4 + 0xf7078]
je 0x46e48f
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x6c]
push 0
push 0
mov dword [eax + edx*4], ecx
mov eax, dword [esi + edi*4 + 0xf7078]
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x74]
push 1
push 1
mov dword [eax + edx*4], ecx
mov eax, dword [esi + edi*4 + 0xf7258]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x80]
push 0xffffffffffffffff
mov dword [eax + edx*4], ecx
mov eax, dword [esi + edi*4 + 0xf7258]
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x84]
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x2c]
push eax
mov ecx, esi
call fcn.0048b550
push 0
push 0
push 1
push 1
push 1
push ebx
mov ecx, esi
mov dword [esp + 0x34], eax
call fcn.0048b550
mov edx, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [esi + edi*4 + 0xf7078]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0xbc], ecx
mov ecx, dword [esi + edi*4 + 0xf7258]
mov edx, dword [ecx + edx*4]
mov dword [esp + 0xc0], edx
mov edx, dword [ebp + 0x10]
mov eax, dword [eax + edx*4]
mov ecx, dword [ecx + edx*4]
mov edx, dword [esp + 0xc0]
push edx
mov edx, dword [esp + 0xc0]
push edx
push ecx
push eax
mov ecx, esi
call fcn.0048cef0
mov dword [esp + 0x34], eax
mov eax, dword [esi + edi*4 + 0xf7078]
mov ecx, dword [eax + ebx*4]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esi + edi*4 + 0xf7258]
mov edx, dword [ecx + ebx*4]
mov dword [esp + 0xcc], edx
mov edx, dword [ebp + 0x10]
mov eax, dword [eax + edx*4]
mov ecx, dword [ecx + edx*4]
mov edx, dword [esp + 0xcc]
push edx
mov edx, dword [esp + 0xcc]
push edx
push ecx
push eax
mov ecx, esi
call fcn.0048cef0
mov dword [esp + 0x24], eax
mov eax, dword [esi + edi*4 + 0xf7078]
mov ecx, dword [eax + ebx*4]
mov dword [esp + 0xd4], ecx
mov ecx, dword [esi + edi*4 + 0xf7258]
mov edx, dword [ecx + ebx*4]
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0x18]
mov eax, dword [eax + edx*4]
mov ecx, dword [ecx + edx*4]
mov edx, dword [esp + 0xd8]
push edx
mov edx, dword [esp + 0xd8]
push edx
push ecx
push eax
mov ecx, esi
call fcn.0048cef0
mov ecx, dword [esp + 0x34]
shl eax, 1
cmp ecx, eax
jg 0x46e42e
cmp dword [esp + 0x24], eax
jg 0x46e42e
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push eax
push ebx
push ecx
push edx
push edi
mov ecx, esi
call fcn.0048c770
test eax, eax
jne 0x46e422
mov eax, dword [esi + edi*4 + 0xf7078]
mov ecx, dword [eax + ebx*4]
mov dword [esp + 0xa8], ecx
mov ecx, dword [esi + edi*4 + 0xf7258]
mov edx, dword [ecx + ebx*4]
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x18]
mov eax, dword [eax + edx*4]
mov ecx, dword [ecx + edx*4]
mov edx, dword [esp + 0xac]
push edx
mov edx, dword [esp + 0xac]
push edx
push ecx
push eax
mov ecx, esi
call fcn.0048cef0
cmp eax, 0x1388
jge 0x46e4f4
mov eax, dword [esp + 0x18]
push 1
push eax
jmp 0x46e4d8
mov eax, dword [esi + edi*4 + 0xf7078]
mov ecx, dword [esp + 0x14]
push 1
push ebx
mov edx, dword [eax + ebx*4]
mov dword [eax + ecx*4], edx
mov eax, dword [esi + edi*4 + 0xf7078]
mov edx, dword [ebp + 0x10]
mov ecx, dword [eax + ecx*4]
mov dword [eax + edx*4], ecx
mov eax, dword [esi + edi*4 + 0xf7258]
mov ecx, dword [esi + edi*4 + 0xf7078]
mov edx, dword [eax + ebx*4]
mov eax, dword [esp + 0x1c]
mov dword [ecx + eax*4], edx
mov ecx, dword [esi + edi*4 + 0xf7078]
mov edx, dword [esi + edi*4 + 0xf7258]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp + 0x10]
mov dword [edx + ecx*4], eax
mov ecx, esi
call fcn.00463450
mov eax, dword [esp + 0xc]
dec eax
jmp 0x46e4f0
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + ebx*4]
push 1
mov dword [eax + ecx*4], edx
mov eax, dword [esi + edi*4 + 0xf7078]
mov edx, dword [ebp + 0x10]
mov ecx, dword [eax + ecx*4]
mov dword [eax + edx*4], ecx
mov eax, dword [esi + edi*4 + 0xf7258]
mov ecx, dword [esp + 0x18]
mov edx, dword [eax + ebx*4]
mov dword [eax + ecx*4], edx
mov eax, dword [esi + edi*4 + 0xf7258]
mov edx, dword [esi + edi*4 + 0xf7078]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp + 0x10]
mov dword [edx + ecx*4], eax
mov edx, dword [esp + 0x1c]
push edx
mov ecx, esi
call fcn.00463450
push 1
push ebx
mov ecx, esi
call fcn.00463450
mov eax, dword [esp + 0xc]
sub eax, 2
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x30]
cmp ecx, eax
je 0x46e53c
mov eax, dword [esp + 0xc]
mov edx, dword [ebp + 0x14]
push 0
push 0
push 1
lea ebx, [ecx + eax]
push 1
add edx, eax
push 1
push ebx
mov ecx, esi
mov dword [ebp + 0x14], edx
call fcn.0048b550
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x30], eax
cmp eax, ecx
jne 0x46d5c1
mov dword [esp + 0x60], 1
jmp 0x46d5c1
mov edx, dword [esp + 0xc]
mov ecx, dword [ebp + 0x10]
add eax, edx
test ecx, ecx
jne 0x46e559
mov edx, dword [esp + 0x64]
movsx ecx, word [edx]
dec ecx
cmp eax, ecx
je 0x46e559
push 1
jmp 0x46e56b
mov edx, dword [esp + 0x64]
movsx ecx, word [edx]
lea edx, [ecx - 1]
cmp eax, edx
jne 0x46e572
add ecx, 0xfffffffe
push ecx
mov ecx, esi
call fcn.0047f3d0
mov eax, dword [esp + 0x2c]
push eax
call fcn.004c886d
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [esp + 0x60]
push 0
push 0x51660c
push 0x5194bc
call fcn.004c5f8b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10