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

Disassembly:
sub esp, 0x3c
push esi
mov esi, ecx
push edi
xor edi, edi
mov eax, dword [esi + 0x88]
cmp dword [eax + 0x98], edi
je 0x46473f
mov ecx, dword [eax + 0x2a4]
jmp 0x46475a
cmp dword [eax + 0x74], edi
jne 0x464754
cmp dword [eax + 0x80], edi
jne 0x464754
mov ecx, dword [eax + 0x284]
jmp 0x46475a
mov ecx, dword [eax + 0x154]
push ebx
push ebp
mov ebp, dword [esp + 0x50]
dec ecx
cmp ebp, ecx
jge 0x464769
mov ecx, ebp
jmp 0x464795
cmp dword [eax + 0x98], edi
je 0x464779
mov ecx, dword [eax + 0x2a4]
jmp 0x464794
cmp dword [eax + 0x74], edi
jne 0x46478e
cmp dword [eax + 0x80], edi
jne 0x46478e
mov ecx, dword [eax + 0x284]
jmp 0x464794
mov ecx, dword [eax + 0x154]
dec ecx
cmp ecx, edi
jge 0x46479d
xor ebp, ebp
jmp 0x4647fb
cmp dword [eax + 0x98], edi
je 0x4647ad
mov ecx, dword [eax + 0x2a4]
jmp 0x4647c8
cmp dword [eax + 0x74], edi
jne 0x4647c2
cmp dword [eax + 0x80], edi
jne 0x4647c2
mov ecx, dword [eax + 0x284]
jmp 0x4647c8
mov ecx, dword [eax + 0x154]
dec ecx
cmp ebp, ecx
jl 0x4647fb
cmp dword [eax + 0x98], edi
je 0x4647dd
mov ecx, dword [eax + 0x2a4]
jmp 0x4647f8
cmp dword [eax + 0x74], edi
jne 0x4647f2
cmp dword [eax + 0x80], edi
jne 0x4647f2
mov ecx, dword [eax + 0x284]
jmp 0x4647f8
mov ecx, dword [eax + 0x154]
lea ebp, [ecx - 1]
cmp dword [esi + 0xfc], edi
je 0x46482c
mov ecx, dword [esi + 0x58]
mov edx, dword [esi + 0x54]
mov dword [esp + 0x30], ecx
mov ecx, dword [esi + 0x5c]
mov dword [esp + 0x2c], edx
mov edx, dword [esi + 0x110]
mov dword [esp + 0x34], ecx
mov ecx, dword [esi + 0x114]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ecx
mov dword [esi + 0x5c], edi
mov ecx, dword [eax + 0x98]
xor ebx, ebx
cmp ecx, edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], edi
je 0x464872
cmp ebp, dword [eax + 0x2a4]
jge 0x4648be
mov eax, dword [eax + 0x2a0]
lea edx, [ebp + ebp*2]
lea ecx, [eax + edx*4]
mov edx, ecx
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esi + 0x58], eax
mov dword [esp + 0x48], edx
mov dword [esi + 0x54], ecx
jmp 0x4648c4
cmp dword [eax + 0x74], edi
jne 0x464887
cmp dword [eax + 0x80], edi
jne 0x464887
mov dword [esi + 0x58], ebp
mov dword [esi + 0x54], edi
jmp 0x4648c4
cmp ebp, dword [eax + 0x154]
jge 0x4648b2
mov edx, dword [eax + 0x150]
lea ecx, [ebp + ebp*2]
lea eax, [edx + ecx*4]
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esi + 0x58], eax
mov dword [esp + 0x48], edx
mov dword [esi + 0x54], ecx
jmp 0x4648c4
push edi
push edi
push 0x52a2ac
call fcn.004dad19
mov dword [esi + 0x54], edi
mov dword [esi + 0x58], edi
mov ecx, dword [esi + 0x88]
cmp dword [ecx + 0x98], edi
je 0x4648e6
mov edx, dword [ecx + 0x2a0]
lea eax, [ebp + ebp*2]
mov eax, dword [edx + eax*4 + 8]
mov dword [esp + 0x1c], eax
jmp 0x46491a
cmp dword [ecx + 0x74], edi
jne 0x464908
cmp dword [ecx + 0x80], edi
jne 0x464908
mov eax, dword [ecx + 0x2d8]
mov edx, ebp
shl edx, 5
mov eax, dword [eax + edx]
dec eax
mov dword [esp + 0x1c], eax
jmp 0x46491a
mov eax, dword [ecx + 0x150]
lea edx, [ebp + ebp*2]
mov edx, dword [eax + edx*4 + 8]
mov dword [esp + 0x1c], edx
mov eax, dword [0x55f84c]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x98]
cmp eax, edi
je 0x464962
mov eax, dword [ecx + 0x2a0]
lea edx, [ebp + ebp*2]
lea edx, [eax + edx*4]
mov ebx, edx
mov eax, dword [ebx]
shl eax, 5
mov edx, dword [ebx + 4]
mov ebx, dword [ebx + 8]
mov dword [esp + 0x48], ebx
mov ebx, dword [ecx + 0x2d8]
mov eax, dword [ebx + eax + 8]
mov ebx, dword [esp + 0x18]
lea edx, [eax + edx*2]
mov dword [esp + 0x10], edx
jmp 0x4649d4
cmp dword [ecx + 0x74], edi
jne 0x464984
cmp dword [ecx + 0x80], edi
jne 0x464984
mov edx, dword [ecx + 0x2d8]
mov eax, ebp
shl eax, 5
mov eax, dword [edx + eax + 8]
mov dword [esp + 0x10], eax
jmp 0x4649d4
mov eax, dword [ecx + 0x150]
lea edx, [ebp + ebp*2]
lea edx, [eax + edx*4]
mov eax, dword [edx]
mov ebx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x48], edx
mov edx, dword [ecx + 0x284]
dec edx
cmp edx, eax
mov edi, edx
jl 0x4649ac
mov edi, eax
test edi, edi
jge 0x4649b4
xor eax, eax
jmp 0x4649ba
cmp edx, eax
jge 0x4649ba
mov eax, edx
mov edx, dword [ecx + 0x2d8]
shl eax, 5
xor edi, edi
mov eax, dword [edx + eax + 8]
lea edx, [eax + ebx*2]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
cmp dword [ecx + 0x78], edi
je 0x464a53
cmp ebp, edi
je 0x464a53
cmp dword [ecx + 0x98], edi
je 0x464a06
mov edx, dword [ecx + 0x2a0]
lea eax, [ebp + ebp*2]
lea eax, [edx + eax*4]
mov edx, eax
mov eax, dword [edx]
mov dword [esp + 0x40], eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x48], edx
jmp 0x464a2a
cmp dword [ecx + 0x74], edi
je 0x464a53
mov edx, dword [ecx + 0x150]
lea eax, [ebp + ebp*2]
lea eax, [edx + eax*4]
mov edx, eax
mov eax, dword [edx]
mov dword [esp + 0x40], eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x48], edx
xor edx, edx
cmp eax, edi
setg dl
mov eax, edx
cmp eax, edi
je 0x464a53
mov eax, dword [esi + 0x58]
push edi
push eax
call fcn.0044e550
mov ecx, dword [esi + 0x88]
push eax
call fcn.00455070
mov ebx, eax
mov dword [esp + 0x18], ebx
mov eax, dword [esi + 0x88]
mov dword [esp + 0x20], ebx
cmp dword [eax + 0x98], edi
je 0x464a6d
mov ecx, dword [eax + 0x2a4]
jmp 0x464a88
cmp dword [eax + 0x74], edi
jne 0x464a82
cmp dword [eax + 0x80], edi
jne 0x464a82
mov ecx, dword [eax + 0x284]
jmp 0x464a88
mov ecx, dword [eax + 0x154]
dec ecx
cmp ebp, ecx
jge 0x464af0
lea ecx, [ebp + 1]
cmp ecx, edi
je 0x464af0
cmp dword [eax + 0x98], edi
je 0x464abc
mov edx, dword [eax + 0x2a0]
lea ecx, [ecx + ecx*2]
lea eax, [edx + ecx*4]
mov ecx, eax
mov edx, dword [ecx]
mov dword [esp + 0x40], edx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x48], ecx
jmp 0x464adf
cmp dword [eax + 0x74], edi
je 0x464af0
mov edx, dword [eax + 0x150]
lea ecx, [ecx + ecx*2]
lea eax, [edx + ecx*4]
mov ecx, eax
mov edx, dword [ecx]
mov dword [esp + 0x40], edx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x48], ecx
xor edx, edx
cmp eax, edi
setg dl
mov eax, edx
mov dword [esp + 0x24], edi
cmp eax, edi
jne 0x464af8
mov dword [esp + 0x24], 1
cmp ebx, dword [esi + 0x120]
jge 0x464c09
mov edi, dword [0x4fd160]
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
cmp eax, edx
mov dword [esp + 0x20], ebx
jl 0x464b4c
mov eax, dword [esp + 0x28]
test eax, eax
je 0x464c0d
mov eax, dword [esp + 0x24]
test eax, eax
je 0x464c0d
mov eax, dword [esi + 0x5c]
mov ecx, dword [0x5355b0]
inc eax
mov dword [esp + 0x50], ecx
mov dword [esi + 0x5c], eax
jmp 0x464bf7
mov ecx, dword [esp + 0x10]
mov ax, word [ecx]
cmp ax, 9
jne 0x464b72
mov edx, dword [esi + 0x88]
mov eax, ebx
mov ecx, dword [edx + 0x100]
cdq
idiv ecx
sub ecx, edx
mov dword [esp + 0x50], ecx
jmp 0x464bdc
mov dword [esp + 0x50], eax
and eax, 0xffff
cmp word [eax*2 + 0x53623c], 0
lea eax, [eax*2 + 0x53623c]
jne 0x464bd3
mov edx, dword [0x5361f4]
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x54]
push 1
push ecx
push edx
call edi
mov eax, dword [0x536238]
test eax, eax
je 0x464bba
mov eax, dword [0x536220]
mov ecx, dword [esp + 0x40]
sub ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x50]
mov dx, word [esp + 0x40]
and ecx, 0xffff
lea eax, [ecx*2 + 0x53623c]
mov word [eax], dx
xor ecx, ecx
mov cx, word [eax]
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x54]
add eax, 2
inc edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esi + 0x54], edx
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x120]
add ebx, ecx
cmp ebx, eax
jl 0x464b0e
jmp 0x464c0d
mov ecx, dword [esp + 0x50]
mov eax, dword [esi + 0x120]
cmp ebx, eax
jle 0x464c43
mov edi, ebx
sub edi, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
dec eax
cmp edi, eax
jle 0x464c43
mov eax, dword [esi + 0x5c]
mov ebx, dword [esp + 0x20]
test eax, eax
jle 0x464c38
dec eax
mov dword [esi + 0x5c], eax
jmp 0x464c43
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x464c43
dec dword [esi + 0x54]
mov eax, dword [esp + 0x18]
cmp ebx, eax
jg 0x464c4d
mov ebx, eax
mov eax, dword [esi + 0x64]
mov ecx, ebx
imul eax, dword [0x536214]
sub ecx, eax
mov eax, dword [esi + 0x5c]
test eax, eax
mov dword [esi + 0x110], ecx
jle 0x464c71
imul eax, dword [0x5355b0]
sub ebx, eax
mov edi, dword [esi + 0x88]
mov eax, dword [edi + 0x74]
test eax, eax
je 0x464cb3
mov eax, dword [edi + 0xa4]
test eax, eax
jne 0x464cb3
mov eax, dword [esi + 0x118]
mov ecx, dword [esi + 0x110]
add eax, 0xfffffffe
cmp eax, ecx
mov edx, eax
jl 0x464c9f
mov edx, ecx
test edx, edx
jge 0x464ca7
xor eax, eax
jmp 0x464cad
cmp eax, ecx
jl 0x464cad
mov eax, ecx
mov dword [esi + 0x110], eax
sub ebp, dword [esi + 0x60]
imul ebp, dword [0x536200]
mov dword [esi + 0x114], ebp
mov edx, dword [0x536214]
mov eax, dword [edi + 0xe0]
shl edx, 5
add ebx, edx
cmp ebx, eax
jle 0x464cde
mov dword [edi + 0xe0], ebx
mov eax, dword [esi + 0xfc]
pop ebp
test eax, eax
pop ebx
je 0x464d74
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [esi + 0x54], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x58], ecx
mov ecx, dword [esi + 0x110]
mov dword [esi + 0x120], eax
mov eax, dword [esi + 0x13c]
mov dword [esi + 0x5c], edx
cmp eax, ecx
jne 0x464d2d
mov ecx, dword [esi + 0x140]
mov edx, dword [esi + 0x114]
cmp ecx, edx
je 0x464d58
cmp eax, 0xffffffff
je 0x464d39
mov ecx, esi
call fcn.00463f80
mov edx, dword [esi + 0x110]
mov eax, dword [esi + 0x114]
mov ecx, esi
mov dword [esi + 0x13c], edx
mov dword [esi + 0x140], eax
call fcn.00463f80
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esi + 0x110], ecx
mov dword [esi + 0x114], edx
pop edi
pop esi
add esp, 0x3c
ret 4
mov eax, dword [esi + 0xd4]
test eax, eax
je 0x464d88
mov eax, dword [esi + 0x1c]
push eax
call dword [0x4fd4d0]
mov ecx, esi
call fcn.004778f0
test eax, eax
jne 0x464d9a
mov ecx, esi
call fcn.00463d80
mov ecx, esi
call fcn.00463f80
mov ecx, dword [0x55f3fc]
cmp dword [ecx + 0xd74], 1
jne 0x464db7
mov ecx, esi
call fcn.00464dc0
pop edi
pop esi
add esp, 0x3c
ret 4