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

Disassembly:
mov eax, dword [esp + 0xc]
sub esp, 0x6c
push ebx
push ebp
mov ebp, dword [eax]
push esi
mov esi, dword [esp + 0x80]
push edi
mov edi, dword [esp + 0x80]
test ebp, ebp
mov dword [esp + 0x18], 0
mov dword [esp + 0x84], 0xf
jbe 0x479358
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x80], ebp
mov edx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
mov edx, edi
mov ecx, dword [edx + 4]
mov ebx, dword [esp + 0x30]
xor eax, eax
cmp ecx, ebx
jle 0x478638
mov eax, 1
jmp 0x478649
mov ebx, dword [esp + 0x8c]
cmp ecx, dword [ebx + 4]
jge 0x478649
mov eax, 2
mov ecx, dword [edx]
mov ebx, dword [esp + 0x2c]
cmp ecx, ebx
jle 0x478657
or al, 4
jmp 0x478664
mov ebx, dword [esp + 0x8c]
cmp ecx, dword [ebx]
jge 0x478664
or al, 8
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x84]
or ecx, eax
and ebx, eax
mov eax, dword [esp + 0x80]
add edx, 8
dec eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x80], eax
jne 0x478624
mov eax, ecx
test eax, eax
je 0x479358
mov eax, ebx
test eax, eax
jne 0x47936e
mov al, cl
test al, 8
je 0x4789d1
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x84], 0
mov ebx, 1
mov dword [esp + 0x10], esi
mov ecx, dword [eax]
or eax, 0xffffffff
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x80], edi
mov eax, ebx
xor edx, edx
div ebp
mov eax, dword [esp + 0x80]
mov dword [esp + 0x30], eax
mov eax, dword [eax]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x2c], eax
shl edx, 3
cmp eax, ecx
mov dword [esp + 0x24], edx
jge 0x4787fa
mov eax, dword [edx + edi]
cmp eax, ecx
jl 0x4787fa
mov edx, ecx
mov ecx, dword [esp + 0x2c]
sub eax, ecx
sub edx, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x1c], ebx
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x24]
mov eax, dword [eax + edi + 4]
sub eax, ecx
mov ecx, dword [esp + 0x80]
imul eax, edx
cdq
idiv dword [esp + 0x28]
add eax, dword [ecx + 4]
test esi, esi
je 0x478799
fild dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
fstp dword [esp + 0x2c]
fild dword [esp + 0x28]
fstp dword [esp + 0x28]
fld dword [edx + esi]
fsub dword [ecx]
fmul dword [esp + 0x2c]
fdiv dword [esp + 0x28]
fadd dword [ecx]
fstp dword [esp + 0x38]
fld dword [edx + esi + 4]
fsub dword [ecx + 4]
fmul dword [esp + 0x2c]
fdiv dword [esp + 0x28]
fadd dword [ecx + 4]
fstp dword [esp + 0x34]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x24]
push ecx
push eax
push edx
push ebx
push ebp
push esi
push edi
call fcn.00479380
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
add esp, 0x20
inc ecx
mov ebp, eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x10]
mov eax, 8
add edx, eax
add ecx, eax
mov eax, dword [esp + 0x14]
inc ebx
test eax, eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x10], ecx
jge 0x478927
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov edx, dword [edx + edi]
cmp edx, ecx
mov dword [esp + 0x2c], edx
jge 0x4788ee
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
cmp eax, ecx
jl 0x4788ee
mov edx, ecx
mov ecx, dword [esp + 0x2c]
sub eax, ecx
sub edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], edx
mov ecx, dword [ecx + edi + 4]
mov dword [esp + 0x14], ebx
mov eax, dword [eax + 4]
sub eax, ecx
mov ecx, dword [esp + 0x24]
imul eax, edx
cdq
idiv dword [esp + 0x2c]
add eax, dword [ecx + edi + 4]
test esi, esi
je 0x478891
fild dword [esp + 0x28]
mov edx, dword [esp + 0x10]
fstp dword [esp + 0x30]
fild dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fld dword [edx]
fsub dword [ecx + esi]
fmul dword [esp + 0x30]
fdiv dword [esp + 0x2c]
fadd dword [ecx + esi]
lea ecx, [ecx + esi + 4]
fstp dword [esp + 0x40]
fld dword [edx + 4]
fsub dword [ecx]
fmul dword [esp + 0x30]
fdiv dword [esp + 0x2c]
fadd dword [ecx]
fstp dword [esp + 0x3c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
push ecx
push edx
push eax
mov eax, dword [esp + 0x2c]
push eax
push ebx
push ebp
push esi
push edi
call fcn.00479380
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
add esp, 0x20
inc ecx
mov ebp, eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x10]
mov eax, 8
add edx, eax
add ecx, eax
mov eax, dword [esp + 0x1c]
inc ebx
test eax, eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x10], ecx
jge 0x478988
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
add edx, 8
inc eax
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x10]
inc ebx
add edx, 8
cmp eax, ebp
mov dword [esp + 0x84], eax
mov dword [esp + 0x10], edx
jb 0x4786e3
jmp 0x4789c8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
sub eax, edx
dec eax
mov dword [esp + 0x84], eax
je 0x4789c8
mov eax, dword [esp + 0x1c]
mov ebx, eax
shl ebx, 0x1d
sub ebx, eax
lea ecx, [edi + eax*8]
add ebx, ebp
lea eax, [edi + edx*8 + 8]
shl ebx, 3
push ebx
push ecx
push eax
call fcn.004f8b60
add esp, 0xc
test esi, esi
je 0x47897f
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
push ebx
lea edx, [esi + ecx*8]
lea ecx, [esi + eax*8 + 8]
push edx
push ecx
call fcn.004f8b60
add esp, 0xc
sub ebp, dword [esp + 0x84]
jmp 0x4789c8
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
sub eax, ebp
inc eax
lea edx, [edi + ebp*8]
mov dword [esp + 0x84], eax
lea ebx, [eax*8]
push ebx
push edx
push edi
call fcn.004f8b60
add esp, 0xc
test esi, esi
je 0x4789c1
lea eax, [esi + ebp*8]
push ebx
push eax
push esi
call fcn.004f8b60
add esp, 0xc
mov ebp, dword [esp + 0x84]
cmp ebp, 3
jb 0x47936e
test byte [esp + 0x18], 4
je 0x478cf3
mov ecx, dword [esp + 0x8c]
or eax, 0xffffffff
test ebp, ebp
mov edx, dword [ecx + 8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x84], 0
jbe 0x478cea
mov ebx, 1
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edi
mov eax, ebx
xor edx, edx
div ebp
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [eax]
lea ecx, [edx*8]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x80]
cmp eax, ecx
jg 0x478b22
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + edi]
mov edx, dword [esp + 0x80]
cmp ecx, edx
jle 0x478b22
sub eax, ecx
sub edx, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], ebx
mov ecx, dword [eax + edi + 4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
sub eax, ecx
mov ecx, dword [esp + 0x1c]
imul eax, edx
cdq
idiv dword [esp + 0x30]
add eax, dword [ecx + edi + 4]
test esi, esi
je 0x478acc
fild dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
fstp dword [esp + 0x2c]
fild dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [edx]
fsub dword [ecx + esi]
fmul dword [esp + 0x2c]
fdiv dword [esp + 0x30]
fadd dword [ecx + esi]
lea ecx, [ecx + esi + 4]
fstp dword [esp + 0x48]
fld dword [edx + 4]
fsub dword [ecx]
fmul dword [esp + 0x2c]
fdiv dword [esp + 0x30]
fadd dword [ecx]
fstp dword [esp + 0x44]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
push ecx
push edx
push eax
mov eax, dword [esp + 0x8c]
push eax
push ebx
push ebp
push esi
push edi
call fcn.00479380
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x30]
add esp, 0x20
inc ecx
mov ebp, eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x14]
mov eax, 8
add edx, eax
add ecx, eax
mov eax, dword [esp + 0x20]
inc ebx
test eax, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
jge 0x478c4b
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + edi]
mov ecx, dword [esp + 0x80]
cmp eax, ecx
jg 0x478c15
mov edx, dword [esp + 0x28]
mov ecx, dword [edx]
mov edx, dword [esp + 0x80]
cmp ecx, edx
jle 0x478c15
sub eax, ecx
sub edx, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x20], ebx
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + edi + 4]
sub eax, ecx
imul eax, edx
cdq
idiv dword [esp + 0x30]
mov edx, ecx
add eax, edx
test esi, esi
je 0x478bc3
fild dword [esp + 0x4c]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
fstp dword [esp + 0x2c]
fild dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [edx + esi]
fsub dword [ecx]
fmul dword [esp + 0x2c]
fdiv dword [esp + 0x30]
fadd dword [ecx]
fstp dword [esp + 0x54]
fld dword [edx + esi + 4]
fsub dword [ecx + 4]
fmul dword [esp + 0x2c]
fdiv dword [esp + 0x30]
fadd dword [ecx + 4]
fstp dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
push ecx
push edx
push eax
mov eax, dword [esp + 0x8c]
push eax
push ebx
push ebp
push esi
push edi
call fcn.00479380
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x30]
add esp, 0x20
inc ecx
mov ebp, eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x14]
mov eax, 8
add edx, eax
add ecx, eax
mov eax, dword [esp + 0x24]
inc ebx
test eax, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
jge 0x478c8d
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x84]
mov ecx, 8
inc eax
add edx, ecx
inc ebx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
add edx, ecx
cmp eax, ebp
mov dword [esp + 0x84], eax
mov dword [esp + 0x14], edx
jb 0x478a18
jmp 0x478cea
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
sub eax, ebp
inc eax
lea ecx, [edi + ebp*8]
mov dword [esp + 0x84], eax
lea ebx, [eax*8]
push ebx
push ecx
push edi
call fcn.004f8b60
add esp, 0xc
test esi, esi
je 0x478c84
lea edx, [esi + ebp*8]
push ebx
push edx
push esi
call fcn.004f8b60
add esp, 0xc
mov ebp, dword [esp + 0x84]
jmp 0x478cea
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
sub eax, edx
dec eax
mov dword [esp + 0x84], eax
je 0x478cea
mov eax, dword [esp + 0x20]
mov ecx, edx
mov ebx, eax
shl ebx, 0x1d
sub ebx, eax
lea eax, [edi + eax*8]
add ebx, ebp
lea edx, [edi + ecx*8 + 8]
shl ebx, 3
push ebx
push eax
push edx
call fcn.004f8b60
add esp, 0xc
test esi, esi
je 0x478ce3
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
push ebx
lea ecx, [esi + eax*8]
lea eax, [esi + edx*8 + 8]
push ecx
push eax
call fcn.004f8b60
add esp, 0xc
sub ebp, dword [esp + 0x84]
cmp ebp, 3
jb 0x47936e
test byte [esp + 0x18], 2
je 0x479028
mov ecx, dword [esp + 0x8c]
or eax, 0xffffffff
test ebp, ebp
mov edx, dword [ecx + 4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x84], 0
jbe 0x47901f
mov ebx, 1
mov dword [esp + 0x10], esi
mov dword [esp + 0x80], edi
mov eax, ebx
xor edx, edx
div ebp
mov eax, dword [esp + 0x80]
mov dword [esp + 0x60], eax
add eax, 4
mov dword [esp + 0x28], eax
lea ecx, [edx*8]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax]
cmp ecx, dword [esp + 0x14]
jge 0x478e4e
mov edx, dword [esp + 0x24]
mov eax, dword [edx + edi + 4]
mov edx, dword [esp + 0x14]
cmp eax, edx
jl 0x478e4e
sub eax, ecx
sub edx, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x1c], ebx
mov ecx, dword [eax]
mov eax, dword [esp + 0x24]
mov eax, dword [eax + edi]
sub eax, ecx
mov ecx, dword [esp + 0x80]
imul eax, edx
cdq
idiv dword [esp + 0x30]
add eax, dword [ecx]
test esi, esi
je 0x478df5
fild dword [esp + 0x4c]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
fstp dword [esp + 0x2c]
fild dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [edx + esi]
fsub dword [ecx]
fmul dword [esp + 0x2c]
fdiv dword [esp + 0x30]
fadd dword [ecx]
fstp dword [esp + 0x5c]
fld dword [edx + esi + 4]
fsub dword [ecx + 4]
fmul dword [esp + 0x2c]
fdiv dword [esp + 0x30]
fadd dword [ecx + 4]
fstp dword [esp + 0x58]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x18]
push ecx
push edx
push eax
push ebx
push ebp
push esi
push edi
call fcn.00479380
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
add esp, 0x20
inc ecx
mov ebp, eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x10]
mov eax, 8
add edx, eax
add ecx, eax
mov eax, dword [esp + 0x20]
inc ebx
test eax, eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x10], ecx
jge 0x478f7a
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + edi + 4]
mov eax, dword [esp + 0x14]
cmp ecx, eax
jge 0x478f3e
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov edx, dword [esp + 0x14]
cmp eax, edx
jl 0x478f3e
sub eax, ecx
sub edx, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x20], ebx
mov ecx, dword [eax + edi]
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
sub eax, ecx
mov ecx, dword [esp + 0x24]
imul eax, edx
cdq
idiv dword [esp + 0x30]
add eax, dword [ecx + edi]
test esi, esi
je 0x478ee5
fild dword [esp + 0x4c]
mov edx, dword [esp + 0x10]
fstp dword [esp + 0x2c]
fild dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [edx]
fsub dword [ecx + esi]
fmul dword [esp + 0x2c]
fdiv dword [esp + 0x30]
fadd dword [ecx + esi]
lea ecx, [ecx + esi + 4]
fstp dword [esp + 0x68]
fld dword [edx + 4]
fsub dword [ecx]
fmul dword [esp + 0x2c]
fdiv dword [esp + 0x30]
fadd dword [ecx]
fstp dword [esp + 0x64]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x18]
push edx
push ecx
push eax
push ebx
push ebp
push esi
push edi
call fcn.00479380
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
add esp, 0x20
inc ecx
mov ebp, eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x10]
mov eax, 8
add edx, eax
add ecx, eax
mov eax, dword [esp + 0x1c]
inc ebx
test eax, eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x10], ecx
jge 0x478fdf
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
mov ecx, 8
inc eax
add edx, ecx
inc ebx
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x10]
add edx, ecx
cmp eax, ebp
mov dword [esp + 0x84], eax
mov dword [esp + 0x10], edx
jb 0x478d3a
jmp 0x47901f
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
sub eax, edx
dec eax
mov dword [esp + 0x84], eax
je 0x47901f
mov eax, dword [esp + 0x1c]
mov ebx, eax
shl ebx, 0x1d
sub ebx, eax
lea edx, [edi + eax*8]
mov eax, dword [esp + 0x20]
add ebx, ebp
shl ebx, 3
push ebx
lea ecx, [edi + eax*8 + 8]
push edx
push ecx
call fcn.004f8b60
add esp, 0xc
test esi, esi
je 0x478fd6
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
push ebx
lea eax, [esi + edx*8]
lea edx, [esi + ecx*8 + 8]
push eax
push edx
call fcn.004f8b60
add esp, 0xc
sub ebp, dword [esp + 0x84]
jmp 0x47901f
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
sub eax, ebp
inc eax
mov dword [esp + 0x84], eax
lea ebx, [eax*8]
lea eax, [edi + ebp*8]
push ebx
push eax
push edi
call fcn.004f8b60
add esp, 0xc
test esi, esi
je 0x479018
lea ecx, [esi + ebp*8]
push ebx
push ecx
push esi
call fcn.004f8b60
add esp, 0xc
mov ebp, dword [esp + 0x84]
cmp ebp, 3
jb 0x47936e
test byte [esp + 0x18], 1
je 0x4785eb
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x84], 0
mov eax, dword [edx + 0xc]
mov dword [esp + 0x18], eax
or eax, 0xffffffff
test ebp, ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
jbe 0x47934e
mov ecx, dword [esp + 0x18]
mov ebx, 1
mov dword [esp + 0x14], esi
mov dword [esp + 0x80], edi
mov eax, ebx
xor edx, edx
div ebp
mov eax, dword [esp + 0x80]
mov dword [esp + 0x28], eax
add eax, 4
mov dword [esp + 0x4c], eax
mov eax, dword [eax]
shl edx, 3
cmp eax, ecx
mov dword [esp + 0x1c], edx
jg 0x479183
mov edx, dword [edx + edi + 4]
cmp edx, ecx
mov dword [esp + 0x60], edx
jle 0x479183
mov edx, ecx
mov ecx, dword [esp + 0x60]
sub eax, ecx
sub edx, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x60], edx
mov ecx, dword [ecx + edi]
mov dword [esp + 0x20], ebx
mov eax, dword [eax]
sub eax, ecx
mov ecx, dword [esp + 0x1c]
imul eax, edx
cdq
idiv dword [esp + 0x30]
add eax, dword [ecx + edi]
test esi, esi
je 0x479126
fild dword [esp + 0x60]
mov edx, dword [esp + 0x14]
fstp dword [esp + 0x2c]
fild dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [edx]
fsub dword [ecx + esi]
fmul dword [esp + 0x2c]
fdiv dword [esp + 0x30]
fadd dword [ecx + esi]
lea ecx, [ecx + esi + 4]
fstp dword [esp + 0x70]
fld dword [edx + 4]
fsub dword [ecx]
fmul dword [esp + 0x2c]
fdiv dword [esp + 0x30]
fadd dword [ecx]
fstp dword [esp + 0x6c]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push ecx
push eax
push ebx
push ebp
push esi
push edi
call fcn.00479380
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
add esp, 0x20
inc ecx
mov ebp, eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x14]
mov eax, 8
add edx, eax
add ecx, eax
mov eax, dword [esp + 0x24]
inc ebx
test eax, eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x14], ecx
jge 0x4792b1
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + edi + 4]
cmp eax, ecx
jg 0x479278
mov edx, dword [esp + 0x4c]
mov edx, dword [edx]
cmp edx, ecx
mov dword [esp + 0x60], edx
jle 0x479278
mov edx, ecx
mov ecx, dword [esp + 0x60]
sub eax, ecx
sub edx, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x24], ebx
mov ecx, dword [eax]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x60], ecx
mov eax, dword [eax + edi]
sub eax, ecx
imul eax, edx
cdq
idiv dword [esp + 0x30]
mov edx, ecx
add eax, edx
test esi, esi
je 0x47921f
fild dword [esp + 0x4c]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
fstp dword [esp + 0x2c]
fild dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [edx + esi]
fsub dword [ecx]
fmul dword [esp + 0x2c]
fdiv dword [esp + 0x30]
fadd dword [ecx]
fstp dword [esp + 0x78]
fld dword [edx + esi + 4]
fsub dword [ecx + 4]
fmul dword [esp + 0x2c]
fdiv dword [esp + 0x30]
fadd dword [ecx + 4]
fstp dword [esp + 0x74]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push ecx
push eax
push ebx
push ebp
push esi
push edi
call fcn.00479380
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
add esp, 0x20
inc ecx
mov ebp, eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x14]
mov eax, 8
add edx, eax
add ecx, eax
mov eax, dword [esp + 0x20]
inc ebx
test eax, eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x14], ecx
jge 0x4792f3
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
add edx, 8
inc eax
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x14]
inc ebx
add edx, 8
cmp eax, ebp
mov dword [esp + 0x84], eax
mov dword [esp + 0x14], edx
jb 0x479073
jmp 0x47934e
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
sub eax, ebp
inc eax
lea edx, [edi + ebp*8]
mov dword [esp + 0x84], eax
lea ebx, [eax*8]
push ebx
push edx
push edi
call fcn.004f8b60
add esp, 0xc
test esi, esi
je 0x4792ea
lea eax, [esi + ebp*8]
push ebx
push eax
push esi
call fcn.004f8b60
add esp, 0xc
mov ebp, dword [esp + 0x84]
jmp 0x47934e
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
sub eax, edx
dec eax
mov dword [esp + 0x84], eax
je 0x47934e
mov eax, dword [esp + 0x24]
mov ebx, eax
shl ebx, 0x1d
sub ebx, eax
lea ecx, [edi + eax*8]
add ebx, ebp
lea eax, [edi + edx*8 + 8]
shl ebx, 3
push ebx
push ecx
push eax
call fcn.004f8b60
add esp, 0xc
test esi, esi
je 0x479347
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push ebx
lea edx, [esi + ecx*8]
lea ecx, [esi + eax*8 + 8]
push edx
push ecx
call fcn.004f8b60
add esp, 0xc
sub ebp, dword [esp + 0x84]
cmp ebp, 3
jb 0x47936e
jmp 0x4785eb
mov edx, dword [esp + 0x88]
pop edi
pop esi
mov eax, 0x100
mov dword [edx], ebp
pop ebp
pop ebx
add esp, 0x6c
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x6c
ret