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

Disassembly:
sub esp, 0x4c
push ebx
mov ebx, dword [esp + 0x60]
push ebp
push esi
push edi
push 0
push ebx
call fcn.00464260
add esp, 8
test eax, eax
jne 0x464a07
pop edi
pop esi
pop ebp
mov eax, 0xc
pop ebx
add esp, 0x4c
ret
lea eax, [esp + 0x50]
push 0
lea ecx, [esp + 0x3c]
push eax
lea edx, [esp + 0x4c]
push ecx
lea eax, [esp + 0x38]
push edx
lea ecx, [esp + 0x30]
push eax
push ecx
call fcn.00463bb0
mov edi, dword [esp + 0x80]
push ebx
push edi
call fcn.00464140
add esp, 0x20
test eax, eax
jge 0x464a7f
mov eax, dword [esp + 0x60]
test eax, eax
je 0x464a59
push 0
push eax
call fcn.00463d50
mov esi, eax
add esp, 8
test esi, esi
jne 0x464f2e
mov eax, dword [esp + 0x64]
test eax, eax
je 0x464a75
push edi
push eax
call fcn.00463ce0
mov esi, eax
add esp, 8
test esi, esi
jne 0x464f2e
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x4c
ret
lea edx, [esp + 0x20]
push edi
push edx
call fcn.00463ce0
mov esi, eax
add esp, 8
test esi, esi
jne 0x464f2e
lea eax, [esp + 0x2c]
push ebx
push eax
call fcn.00463ce0
mov esi, eax
add esp, 8
test esi, esi
jne 0x464f2e
mov ecx, dword [edi + 4]
lea edx, [esp + 0x44]
add ecx, 2
mov eax, 1
push ecx
push edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], eax
call fcn.00463c40
mov esi, eax
add esp, 8
test esi, esi
jne 0x464f2e
push eax
lea eax, [esp + 0x48]
push eax
call fcn.00463d50
mov esi, eax
add esp, 8
test esi, esi
jne 0x464f2e
lea ecx, [esp + 0x38]
push 2
push ecx
call fcn.00463c40
mov esi, eax
add esp, 8
test esi, esi
jne 0x464f2e
lea edx, [esp + 0x50]
push 3
push edx
call fcn.00463c40
mov esi, eax
add esp, 8
test esi, esi
jne 0x464f2e
lea eax, [esp + 0x2c]
push eax
call fcn.00463df0
add esp, 4
and eax, 0x8000001f
jns 0x464b3d
dec eax
or eax, 0xffffffe0
inc eax
cmp eax, 0x1f
jge 0x464b7f
mov edi, 0x1f
lea ecx, [esp + 0x20]
sub edi, eax
push edi
push ecx
mov dword [esp + 0x24], edi
call fcn.00463f80
mov esi, eax
add esp, 8
test esi, esi
jne 0x464f2e
lea edx, [esp + 0x2c]
push edi
push edx
call fcn.00463f80
mov esi, eax
add esp, 8
test esi, esi
jne 0x464f2e
jmp 0x464b87
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x2c]
lea ebp, [eax - 1]
lea eax, [ecx - 1]
mov edi, ebp
mov dword [esp + 0x14], eax
sub edi, eax
mov ebx, edi
shl ebx, 5
push ebx
push edx
call fcn.00463f80
lea eax, [esp + 0x34]
lea ecx, [esp + 0x28]
push eax
push ecx
call fcn.004641c0
add esp, 0x10
test eax, eax
jl 0x464bf8
mov eax, dword [esp + 0x4c]
lea edx, [esp + 0x2c]
push edx
mov ecx, dword [eax + edi*4]
inc ecx
mov dword [eax + edi*4], ecx
lea eax, [esp + 0x24]
lea ecx, [esp + 0x24]
push eax
push ecx
call fcn.00464530
lea edx, [esp + 0x38]
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.004641c0
add esp, 0x14
test eax, eax
jge 0x464bc3
lea ecx, [esp + 0x2c]
push ebx
push ecx
call fcn.00464080
mov ebx, dword [esp + 0x1c]
add esp, 8
mov eax, ebp
cmp ebp, ebx
mov dword [esp + 0x10], eax
jle 0x464eca
jmp 0x464c1e
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
mov ecx, dword [edx + eax*4]
mov edx, dword [esp + 0x34]
mov edi, dword [edx + ebx*4]
cmp ecx, edi
jb 0x464c4c
sub eax, ebx
lea ebp, [eax - 1]
mov eax, dword [esp + 0x4c]
lea edi, [ebp*4]
mov dword [edi + eax], 0xffffffff
jmp 0x464d0c
mov esi, edi
mov eax, ecx
shr esi, 0x10
xor edx, edx
mov ebp, edi
div esi
mov edx, dword [esp + 0x28]
and ebp, 0xffff
mov ebx, eax
mov eax, dword [esp + 0x10]
mov edx, dword [edx + eax*4 - 4]
mov eax, ebx
imul eax, esi
mov dword [esp + 0x18], edx
mov edx, eax
shl edx, 0x10
sub edx, eax
mov eax, dword [esp + 0x18]
add edx, ecx
shl edx, 0x10
mov ecx, edx
shr eax, 0x10
or ecx, eax
mov eax, ebx
imul eax, ebp
cmp ecx, eax
jae 0x464ca8
add ecx, edi
dec ebx
cmp ecx, edi
jb 0x464ca8
cmp ecx, eax
jae 0x464ca8
add ecx, edi
dec ebx
cmp ecx, edi
jae 0x464c9d
sub ecx, eax
xor edx, edx
mov eax, ecx
div esi
mov edx, eax
imul edx, esi
mov esi, edx
shl esi, 0x10
sub esi, edx
mov edx, dword [esp + 0x18]
add esi, ecx
and edx, 0xffff
shl esi, 0x10
mov ecx, esi
or ecx, edx
mov edx, eax
imul edx, ebp
cmp ecx, edx
jae 0x464cea
add ecx, edi
dec eax
cmp ecx, edi
jb 0x464cea
cmp ecx, edx
jae 0x464cea
add ecx, edi
dec eax
cmp ecx, edi
jae 0x464cdf
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x4c]
sub ecx, esi
shl ebx, 0x10
lea ebp, [ecx - 1]
or ebx, eax
lea edi, [ebp*4]
mov dword [edi + edx], ebx
mov ebx, esi
mov eax, dword [esp + 0x4c]
inc dword [edi + eax]
mov eax, dword [esp + 0x4c]
push 0
mov ecx, dword [edi + eax]
dec ecx
mov dword [edi + eax], ecx
lea eax, [esp + 0x3c]
push eax
call fcn.00463d50
mov esi, eax
add esp, 8
test esi, esi
jne 0x464f2e
cmp ebx, 1
jl 0x464d44
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + ebx*4 - 4]
mov edx, dword [esp + 0x40]
mov dword [edx], eax
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x40]
mov ecx, dword [eax + ebx*4]
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x4c]
lea edx, [esp + 0x38]
mov ecx, dword [edi + eax]
lea eax, [esp + 0x38]
push ecx
push edx
push eax
call fcn.004649a0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x464f2e
lea ecx, [esp + 0x50]
push eax
push ecx
call fcn.00463d50
mov esi, eax
add esp, 8
test esi, esi
jne 0x464f2e
mov eax, dword [esp + 0x10]
cmp eax, 2
jge 0x464da1
xor ecx, ecx
jmp 0x464da9
mov edx, dword [esp + 0x28]
mov ecx, dword [edx + eax*4 - 8]
mov edx, dword [esp + 0x58]
cmp eax, 1
mov dword [edx], ecx
jge 0x464db8
xor ecx, ecx
jmp 0x464dc0
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + eax*4 - 4]
mov edx, dword [esp + 0x58]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + eax*4]
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0x50]
mov dword [eax + 8], edx
lea edx, [esp + 0x38]
push ecx
push edx
call fcn.004641c0
add esp, 8
test eax, eax
jg 0x464d13
mov eax, dword [esp + 0x4c]
lea edx, [esp + 0x2c]
mov ecx, dword [edi + eax]
lea eax, [esp + 0x38]
push ecx
push edx
push eax
call fcn.004649a0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x464f2e
shl ebp, 5
lea ecx, [esp + 0x38]
push ebp
push ecx
call fcn.00463f80
mov esi, eax
add esp, 8
test esi, esi
jne 0x464f2e
lea edx, [esp + 0x38]
lea eax, [esp + 0x20]
push edx
lea ecx, [esp + 0x24]
push eax
push ecx
call fcn.00464530
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x464f2e
lea edx, [esp + 0x20]
push eax
push edx
call fcn.00464260
add esp, 8
test eax, eax
jge 0x464eb9
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x38]
push eax
push ecx
call fcn.00463ce0
mov esi, eax
add esp, 8
test esi, esi
jne 0x464f2e
lea edx, [esp + 0x38]
push ebp
push edx
call fcn.00463f80
mov esi, eax
add esp, 8
test esi, esi
jne 0x464f2e
lea eax, [esp + 0x38]
lea ecx, [esp + 0x20]
push eax
lea edx, [esp + 0x24]
push ecx
push edx
call fcn.004644c0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x464f2e
mov eax, dword [esp + 0x4c]
dec dword [edi + eax]
mov eax, dword [esp + 0x10]
dec eax
cmp eax, ebx
mov dword [esp + 0x10], eax
jg 0x464c1a
mov edi, dword [esp + 0x60]
test edi, edi
je 0x464eef
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00463ce0
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
add esp, 8
mov edx, dword [ecx]
imul edx, dword [eax]
mov dword [edi], edx
mov edi, dword [esp + 0x64]
test edi, edi
je 0x464f2e
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x20]
push ecx
push edx
call fcn.00464080
lea eax, [esp + 0x28]
push eax
push edi
call fcn.00463ce0
mov ecx, dword [esp + 0x78]
push 0
push edi
mov edx, dword [ecx]
mov dword [edi], edx
call fcn.00464260
add esp, 0x18
test eax, eax
jne 0x464f2e
mov dword [edi], 1
lea eax, [esp + 0x50]
push 0
lea ecx, [esp + 0x3c]
push eax
lea edx, [esp + 0x4c]
push ecx
lea eax, [esp + 0x38]
push edx
lea ecx, [esp + 0x30]
push eax
push ecx
call fcn.00463be0
add esp, 0x18
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret