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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb0
mov esi, dword [ebp + 8]
mov ebx, edx
mov edi, ecx
xor edx, edx
mov ecx, esi
call fcn.0043a700
mov ecx, dword [esi + 0x58]
mov eax, dword [esi + 0x54]
mov edx, dword [ebx]
shl ecx, 4
mov dword [esp + 0x88], eax
add ecx, eax
mov dword [esp + 0x8c], ecx
mov ecx, dword [ebx + 4]
mov dword [esp + 0x90], edx
mov edx, dword [esi + 0x11c]
mov dword [esp + 0x94], ecx
mov ecx, dword [esi + 0x120]
mov dword [esp + 0x50], edx
lea edx, [esp + 0x88]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x30]
call fcn.004617d0
cmp dword [esp + 0x38], 0x80000000
jne 0x4603a5
mov dword [edi + 4], 0x80000000
jmp 0x460da7
mov dword [esp + 0x70], ebx
mov dword [esp + 0x28], edi
xor ecx, ecx
mov edx, 0x60
movzx eax, byte [0x94bfc5]
mov dword [esp + 0x4c], 0
call fcn.0071ee80
test eax, eax
je 0x460e8d
movsd xmm0, qword [esp + 0x40]
lea esi, [esp + 0x30]
lea edi, [esp + 0x98]
mov dword [esp + 0x10], eax
mov dword [esp + 8], 1
mov dword [esp + 0x48], 0
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x38]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov dword [esp + 0x64], 4
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 1
movsd xmm0, qword [esp + 0x88]
movsd xmm1, qword [esp + 0x90]
movsd qword [esp + 0xa0], xmm1
movsd qword [esp + 0x98], xmm0
jmp 0x46048c
movsd xmm0, qword [esp + 0x40]
lea eax, [ebx + ebx*2]
add dword [esp + 0x48], 0x18
dec dword [esp + 0x4c]
inc ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 8], ebx
movsd qword [ecx + eax*8 + 0x10], xmm0
movsd xmm0, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x38]
movsd qword [ecx + eax*8 + 8], xmm1
movsd qword [ecx + eax*8], xmm0
mov dword [esp + 0x6c], ebx
mov ecx, esi
mov edx, edi
call fcn.004617d0
cmp dword [esp + 0x38], 0x80000000
je 0x4604be
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x10]
cmp ebx, dword [esp + 0x64]
jne 0x460450
lea ecx, [esp + 0x64]
mov edx, ebx
call fcn.00737c00
mov ecx, dword [esp + 0x68]
jmp 0x460450
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x64]
cmp edi, 0x15
mov dword [esp + 0x74], eax
jae 0x4604ed
cmp edi, 1
jbe 0x460b3f
mov ecx, dword [esp + 0x10]
mov edx, edi
push 1
call fcn.004317e0
add esp, 4
jmp 0x460b47
lea eax, [edi*4]
xor ecx, ecx
and eax, 0xfffffff8
lea edx, [eax + eax*2]
movzx eax, byte [0x94bfc5]
call fcn.0071ee80
test eax, eax
je 0x460ea8
mov ebx, eax
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0x80
call fcn.0071ee80
test eax, eax
je 0x460eb2
mov esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], 0x10
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
lea ecx, [eax + 0x30]
add eax, 0xffffffe8
mov dword [esp + 0x54], ecx
mov dword [esp + 0x5c], eax
xor ecx, ecx
xor eax, eax
jmp 0x460571
mov ecx, 1
mov eax, dword [esp + 0x24]
cmp eax, edi
jae 0x460b23
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
mov edx, edi
mov dword [esp + 0x18], esi
lea esi, [eax + eax*2]
mov dword [esp], eax
sub edx, eax
cmp edx, 2
lea ecx, [ecx + esi*8]
mov dword [esp + 0xc], ecx
jae 0x460660
mov eax, edx
mov ecx, dword [esp]
lea esi, [eax + ecx]
mov edx, esi
sub esi, ecx
jb 0x460e42
cmp edx, edi
ja 0x460e42
mov dword [esp + 0x24], edx
jae 0x4605e8
cmp eax, 0xa
jae 0x4605e8
mov ecx, dword [esp]
lea esi, [ecx + 0xa]
cmp esi, edi
cmovae esi, edi
mov dword [esp + 0x24], esi
sub esi, ecx
jb 0x460e56
mov ecx, dword [esp + 0xc]
cmp eax, 1
mov edx, esi
adc eax, 0
push eax
call fcn.004317e0
add esp, 4
mov ecx, dword [esp + 0x14]
cmp ecx, dword [esp + 0x58]
jne 0x4606f0
movzx eax, byte [0x94bfc5]
mov edx, ecx
xor ecx, ecx
shl edx, 4
call fcn.0071ee80
test eax, eax
je 0x460e67
mov edx, dword [esp + 0x14]
mov ecx, eax
lea eax, [edx + edx]
mov dword [esp + 0x58], eax
lea eax, [edx*8]
push eax
push dword [esp + 0x1c]
push ecx
mov dword [esp + 0x18], ecx
call fcn.007bd9b0
add esp, 0xc
push dword [esp + 0x18]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
jmp 0x4606f4
movsd xmm1, qword [ecx]
movsd xmm0, qword [ecx + 0x18]
mov eax, 2
ucomisd xmm1, xmm0
jbe 0x460a20
cmp edx, 2
je 0x4606c9
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp]
lea edi, [eax + ecx]
mov eax, dword [esp + 0x54]
lea esi, [eax + esi*8]
mov eax, 2
nop word cs:[eax + eax]
nop dword [eax]
movapd xmm1, xmm0
movsd xmm0, qword [esi]
ucomisd xmm1, xmm0
jbe 0x4606c1
lea ebx, [edi + eax + 1]
inc eax
add esi, 0x18
cmp ebx, 1
mov ebx, dword [esp + 4]
jne 0x4606a0
mov eax, edx
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp]
mov esi, eax
add esi, edx
jb 0x460e71
cmp esi, edi
ja 0x460e7f
cmp eax, 2
jae 0x460a6c
mov ecx, dword [esp]
jmp 0x46059f
mov eax, dword [esp + 0x18]
mov edx, dword [esp]
mov dword [eax + ecx*8], esi
mov esi, eax
mov dword [esp + 0x18], eax
mov dword [eax + ecx*8 + 4], edx
inc ecx
cmp ecx, 2
jae 0x46077c
jmp 0x460565
mov ebx, dword [esp + 4]
mov eax, edi
mov edi, dword [esp + 0x14]
sub esi, ebx
lea ecx, [edi - 1]
mov dword [esp], ecx
push esi
push ebx
push eax
call fcn.007bd9b0
add esp, 0xc
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x7c]
add eax, dword [esp + 0x78]
mov dword [esi + ecx*8 + 8], eax
mov eax, dword [esp + 0x80]
mov dword [esi + ecx*8 + 0xc], eax
not ecx
lea eax, [edx + 8]
add ecx, edi
shl ecx, 3
push ecx
push eax
push edx
call fcn.007bd9b0
add esp, 0xc
mov ecx, dword [esp]
mov edi, dword [esp + 8]
mov ebx, dword [esp + 4]
cmp ecx, 1
jbe 0x460560
mov dword [esp + 0x14], ecx
mov eax, dword [esi + ecx*8 - 8]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*8 - 4]
add ecx, eax
cmp ecx, edi
mov ecx, dword [esp + 0x14]
je 0x4607f0
mov edx, dword [esi + ecx*8 - 0x10]
cmp edx, eax
jbe 0x4607f0
cmp ecx, 2
jbe 0x460af5
lea edi, [ecx - 3]
mov dword [esp + 0x1c], edi
mov edi, ecx
mov ecx, dword [esi + ecx*8 - 0x18]
lea esi, [edx + eax]
cmp ecx, esi
jbe 0x4609fa
cmp edi, 3
jbe 0x460b08
mov esi, dword [esp + 0x18]
add edx, ecx
cmp dword [esi + edi*8 - 0x20], edx
mov edi, dword [esp + 8]
mov edx, dword [esp + 0x1c]
jbe 0x4607fc
jmp 0x460b1a
cmp ecx, 3
jb 0x460804
lea edx, [ecx - 3]
mov ecx, dword [esi + ecx*8 - 0x18]
cmp ecx, eax
mov ecx, dword [esp + 0x14]
jb 0x460807
lea edx, [ecx - 2]
cmp ecx, edx
jbe 0x460de9
lea eax, [edx + 1]
cmp ecx, eax
jbe 0x460df4
mov eax, dword [esi + edx*8 + 8]
mov ebx, dword [esi + edx*8 + 0xc]
mov ecx, dword [esi + edx*8 + 4]
mov dword [esp + 0x1c], edx
add ebx, eax
mov edx, ebx
sub edx, ecx
mov dword [esp + 0x20], edx
jb 0x460e2a
mov edx, dword [esp + 8]
mov dword [esp + 0x84], eax
cmp ebx, edx
ja 0x460e36
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x80], ecx
mov edx, dword [esi + eax*8]
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x10]
lea ecx, [ecx + eax*8]
lea eax, [edx + edx*2]
lea edi, [ecx + eax*8]
lea eax, [ebx + ebx*2]
mov ebx, edx
mov edx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x78], ebx
sub edx, ebx
cmp edx, ebx
lea eax, [esi + eax*8]
mov dword [esp + 0x7c], eax
jae 0x460950
lea eax, [edx*8]
mov dword [esp + 0xc], edx
lea esi, [eax + eax*2]
push esi
push edi
push dword [esp + 0xc]
call fcn.007bd9b0
add esp, 0xc
add esi, dword [esp + 4]
test ebx, ebx
jle 0x460710
cmp dword [esp + 0xc], 0
jle 0x460710
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp]
lea eax, [eax + ecx*8]
nop word cs:[eax + eax]
nop
movsd xmm0, qword [edi - 0x18]
movsd xmm1, qword [esi - 0x18]
xor ecx, ecx
xor edx, edx
ucomisd xmm0, xmm1
setbe cl
seta dl
neg ecx
neg edx
ucomisd xmm0, xmm1
lea ecx, [ecx + ecx*2]
lea edx, [edx + edx*2]
lea esi, [esi + ecx*8]
lea edi, [edi + edx*8]
mov ecx, esi
cmova ecx, edi
cmp edi, ebx
movsd xmm0, qword [ecx + 0x10]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
jbe 0x460710
add eax, 0xffffffe8
cmp esi, dword [esp + 4]
ja 0x4608e0
jmp 0x460710
lea eax, [ebx*8]
lea esi, [eax + eax*2]
push esi
push ecx
push dword [esp + 0xc]
call fcn.007bd9b0
mov edx, dword [esp + 0x10]
add esp, 0xc
add esi, edx
test ebx, ebx
jle 0x4609f0
cmp dword [esp + 0x20], ebx
jle 0x4609f0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x60]
mov ebx, edx
mov dword [esp + 0xc], esi
lea eax, [eax + ecx*8]
mov dword [esp + 0x20], eax
nop dword [eax]
movsd xmm0, qword [ebx]
xor ecx, ecx
xor edx, edx
mov eax, ebx
mov esi, dword [esp]
ucomisd xmm0, qword [edi]
cmova eax, edi
setbe cl
movsd xmm0, qword [eax + 0x10]
movsd qword [esi + 0x10], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
lea eax, [ecx + ecx*2]
seta cl
lea ebx, [ebx + eax*8]
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
add esi, 0x18
mov dword [esp], esi
mov esi, dword [esp + 0xc]
cmp ebx, esi
jae 0x4609f2
mov dl, cl
lea eax, [edx + edx*2]
lea edi, [edi + eax*8]
cmp edi, dword [esp + 0x20]
jb 0x460990
jmp 0x4609f2
mov ebx, edx
mov eax, dword [esp]
jmp 0x460716
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
cmp ecx, eax
mov ecx, dword [esp + 0x14]
jae 0x460804
jmp 0x460807
cmp edx, 2
je 0x460599
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp]
lea edi, [eax + ecx]
mov eax, dword [esp + 0x54]
lea esi, [eax + esi*8]
mov eax, 2
nop
movapd xmm1, xmm0
movsd xmm0, qword [esi]
ucomisd xmm1, xmm0
ja 0x460aff
lea ebx, [edi + eax + 1]
inc eax
add esi, 0x18
cmp ebx, 1
mov ebx, dword [esp + 4]
jne 0x460a40
mov edi, dword [esp + 8]
jmp 0x460597
mov edi, dword [esp + 0x5c]
mov edx, eax
mov dword [esp + 0x24], esi
lea esi, [esi + esi*2]
shr edx, 1
lea esi, [edi + esi*8]
mov edi, ecx
movsd xmm0, qword [edi + 0x10]
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [esi + 0x10]
movsd qword [edi + 0x10], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm0
add edi, 0x18
movsd xmm0, qword [esp + 0x40]
movsd qword [esi + 0x10], xmm0
movsd xmm0, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x38]
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
add esi, 0xffffffe8
dec edx
jne 0x460a80
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp]
jmp 0x46059f
mov ecx, 2
jmp 0x460565
mov edi, dword [esp + 8]
jmp 0x460599
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 8]
mov ecx, 3
jmp 0x460565
mov ecx, dword [esp + 0x14]
jmp 0x460565
push esi
push 0
push dword [0x94bf18]
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
call esi
push ebx
push 0
push dword [0x94bf18]
call esi
test edi, edi
je 0x460c0e
lea eax, [edi*4]
mov ebx, edi
xor ecx, ecx
xor esi, esi
lea edi, [eax + eax*2]
movzx eax, byte [0x94bfc5]
mov edx, edi
call fcn.0071ee80
test eax, eax
je 0x460e9c
mov edx, dword [esp + 0x10]
mov ecx, eax
lea eax, [ebx + ebx*2]
xor ebx, ebx
mov dword [esp + 4], ecx
add ecx, 8
lea eax, [edx + eax*8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
add eax, 0x18
mov dword [esp], eax
mov edi, dword [edx + esi + 8]
cmp edi, 0x80000000
je 0x460bc2
mov eax, dword [edx + esi + 0xc]
mov edx, dword [esp + 0x10]
inc ebx
mov edx, dword [edx + esi + 0x10]
add esi, 0x18
mov dword [ecx - 8], edi
mov dword [ecx - 4], eax
mov dword [ecx], edx
add ecx, 0xc
mov edx, dword [esp + 0x10]
cmp dword [esp], esi
jne 0x460b90
jmp 0x460c26
lea eax, [edx + esi + 0x18]
cmp dword [esp + 0xc], eax
je 0x460c26
mov eax, dword [esp + 0x48]
mov ecx, 0xaaaaaaab
sub eax, esi
lea esi, [edx + esi + 0x24]
mul ecx
mov edi, edx
shr edi, 4
jmp 0x460bf6
add esi, 0x18
dec edi
je 0x460c22
cmp dword [esi - 4], 0
je 0x460bf0
push dword [esi]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x460bf0
mov edx, dword [esp + 0x10]
xor ebx, ebx
mov esi, 4
cmp dword [esp + 0x74], 0
jne 0x460c31
jmp 0x460c40
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 4]
cmp dword [esp + 0x74], 0
je 0x460c40
push edx
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ecx, dword [esp + 8]
test ebx, ebx
mov dword [esp + 4], esi
je 0x460c9a
dec ebx
lea eax, [ebx + ebx*2]
mov ecx, dword [esi + eax*4]
cmp ecx, 0x80000000
jne 0x460cb6
mov eax, dword [esp + 0x28]
test ebx, ebx
mov dword [eax + 4], 0x80000000
je 0x460cad
mov eax, dword [esp + 4]
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
lea esi, [eax + 4]
jmp 0x460c86
add esi, 0xc
dec ebx
je 0x460cad
cmp dword [esi - 4], 0
je 0x460c80
push dword [esi]
push 0
push dword [0x94bf18]
call edi
jmp 0x460c80
mov eax, dword [esp + 0x28]
test ecx, ecx
mov dword [eax + 4], 0x80000000
je 0x460da7
push dword [esp + 4]
jmp 0x460d99
mov edx, dword [esi + eax*4 + 4]
mov eax, dword [esi + eax*4 + 8]
test ebx, ebx
mov dword [esp], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x20], eax
je 0x460cfa
mov eax, dword [esp + 4]
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
lea esi, [eax + 4]
jmp 0x460ce6
add esi, 0xc
dec ebx
je 0x460cfa
cmp dword [esi - 4], 0
je 0x460ce0
push dword [esi]
push 0
push dword [0x94bf18]
call edi
jmp 0x460ce0
push dword [esp + 4]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x2c]
mov esi, dword [eax + 0xc]
test esi, esi
je 0x460d84
mov edi, dword [eax + 8]
shl esi, 3
xor ebx, ebx
jmp 0x460d36
inc ebx
add esi, 0xfffffff8
je 0x460d84
cmp edx, dword [edi + ebx*8 + 4]
jne 0x460d30
push edx
push dword [esp + 0x54]
push dword [edi + ebx*8]
call fcn.007be090
mov edx, dword [esp + 0x38]
add esp, 0xc
test eax, eax
jne 0x460d30
test edx, edx
je 0x460daf
js 0x460ebc
movzx eax, byte [0x94bfc5]
mov edx, dword [esp + 0x2c]
xor ecx, ecx
call fcn.0071ee80
mov edx, dword [esp + 0x2c]
mov esi, eax
test eax, eax
jne 0x460db4
mov ecx, 1
call fcn.007c1490
mov eax, dword [esp + 0x28]
cmp dword [esp], 0
mov dword [eax + 4], 0x80000000
je 0x460da7
push dword [esp + 0xc]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, 1
push edx
push dword [esp + 0x54]
push esi
mov edi, edx
call fcn.007bd9b0
add esp, 0xc
mov eax, dword [esp + 0x28]
mov ecx, dword [esp]
mov edx, dword [esp + 0x20]
mov dword [eax], ebx
mov ebx, dword [esp + 0xc]
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], esi
mov dword [eax + 0x18], edi
jmp 0x460da7
lea ecx, [esp + 0x30]
mov edx, 0x936018
jmp 0x460dfd
lea ecx, [esp + 0x30]
mov edx, 0x936028
mov dword [esp + 0x30], 0x935dd0
mov dword [esp + 0x34], 1
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], 0x93d1f8
mov dword [esp + 0x3c], 0
call fcn.007c1b50
mov edx, ebx
push 0x936038
call fcn.007c1e60
mov ecx, ebx
push 0x936038
call fcn.007c1c40
mov ecx, str.assertion_failed:_end___start__end___len
mov edx, 0x2c
push 0x9360a4
call fcn.007c1ca0
mov ecx, dword [esp]
mov edx, dword [esp + 0x24]
push 0x9360b4
call fcn.007c1e60
mov ecx, 0x936068
call fcn.007c1fe0
mov ecx, edx
mov edx, esi
push 0x936008
call fcn.007c1e60
mov ecx, esi
mov edx, edi
push 0x936008
call fcn.007c1c40
mov ecx, 8
mov edx, 0x60
call fcn.007c1490
mov ecx, 4
mov edx, edi
call fcn.007c1490
mov ecx, 0x936048
call fcn.007c1fe0
mov ecx, 0x936058
call fcn.007c1fe0
call fcn.00418cb0
int3