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

Disassembly:
sub esp, 0x2c
push ebx
push ebp
push esi
mov esi, ecx
mov ebx, dword [esp + 0x3c]
push edi
mov ecx, dword [esi + 0x88]
mov edx, ebx
mov eax, dword [ecx + 0x284]
dec eax
cmp ebx, eax
jl 0x4641a2
mov edx, eax
xor ebp, ebp
cmp edx, ebp
jge 0x4641ac
xor ebx, ebx
jmp 0x4641b2
cmp ebx, eax
jl 0x4641b2
mov ebx, eax
mov edx, dword [ecx + 0x2d8]
mov eax, ebx
shl eax, 5
mov eax, dword [edx + eax]
lea edx, [eax - 1]
mov eax, dword [esp + 0x44]
cmp eax, edx
mov edi, eax
jl 0x4641cf
mov edi, edx
cmp edi, ebp
jge 0x4641d7
xor eax, eax
jmp 0x4641dd
cmp eax, edx
jl 0x4641dd
mov eax, edx
cmp dword [esi + 0xfc], ebp
je 0x464218
mov edx, dword [esi + 0x58]
mov dword [esp + 0x1c], edx
mov edx, dword [esi + 0x54]
mov dword [esp + 0x18], edx
mov edx, dword [esi + 0x5c]
mov dword [esp + 0x20], edx
mov edx, dword [esi + 0x120]
mov dword [esp + 0x24], edx
mov edx, dword [esi + 0x110]
mov dword [esp + 0x28], edx
mov edx, dword [esi + 0x114]
mov dword [esp + 0x2c], edx
mov dword [esi + 0x54], eax
push eax
lea eax, [esp + 0x48]
push ebx
lea edx, [esp + 0x48]
push eax
push edx
mov dword [esp + 0x20], ebp
mov dword [esi + 0x58], ebx
mov dword [esi + 0x5c], ebp
call fcn.00453e10
mov edi, dword [esp + 0x40]
mov ecx, eax
cmp dword [esp + 0x48], ebp
je 0x4642a7
cmp edi, ebp
jle 0x4642a7
mov eax, dword [esi + 0x114]
cdq
idiv dword [0x536200]
add eax, dword [esi + 0x60]
cmp edi, eax
jle 0x4642a7
mov eax, dword [esi + 0x88]
dec edi
mov dword [esp + 0x40], edi
cmp dword [eax + 0x98], ebp
je 0x464278
mov eax, dword [eax + 0x2a0]
lea edx, [edi + edi*2]
jmp 0x46429f
cmp dword [eax + 0x74], ebp
jne 0x464296
cmp dword [eax + 0x80], ebp
jne 0x464296
mov eax, dword [eax + 0x2d8]
mov edx, edi
shl edx, 5
mov eax, dword [eax + edx]
dec eax
jmp 0x4642a3
mov eax, dword [eax + 0x150]
lea edx, [edi + edi*2]
mov eax, dword [eax + edx*4 + 8]
mov dword [esp + 0x44], eax
cmp ecx, ebp
jne 0x4643be
cmp dword [esp + 0x4c], ebp
je 0x464319
lea eax, [ebx - 1]
cmp eax, ebp
jl 0x464319
mov ecx, dword [esi + 0x88]
mov edx, eax
shl edx, 5
mov ebx, dword [ecx + 0x2d8]
lea edx, [ebx + edx + 0x10]
cmp dword [edx], ebp
jg 0x4642df
dec eax
sub edx, 0x20
cmp eax, ebp
jge 0x4642d1
jmp 0x464319
push ebp
push eax
call fcn.004547f0
push ebp
push ebp
push ebp
mov ecx, esi
call fcn.00467e90
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x58]
push eax
lea edx, [esp + 0x48]
push ecx
mov ecx, dword [esi + 0x88]
lea eax, [esp + 0x48]
push edx
push eax
call fcn.00453e10
mov edi, dword [esp + 0x40]
cmp eax, ebp
jne 0x4643be
mov eax, dword [esi + 0x88]
cmp dword [eax + 0x98], ebp
je 0x46435f
cmp edi, dword [eax + 0x2a4]
jge 0x464357
mov edx, dword [eax + 0x2a0]
lea ecx, [edi + edi*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 eax, dword [esp + 0x44]
mov dword [esp + 0x38], edx
add ecx, eax
mov dword [esi + 0x54], ecx
jmp 0x4643be
mov dword [esi + 0x54], ebp
mov dword [esi + 0x58], ebp
jmp 0x4643be
cmp dword [eax + 0x74], ebp
jne 0x464378
cmp dword [eax + 0x80], ebp
jne 0x464378
mov ecx, dword [esp + 0x44]
mov dword [esi + 0x58], edi
mov dword [esi + 0x54], ecx
jmp 0x4643be
cmp edi, dword [eax + 0x154]
jge 0x4643a8
mov eax, dword [eax + 0x150]
lea edx, [edi + edi*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 eax, dword [esp + 0x44]
mov dword [esp + 0x38], edx
add ecx, eax
mov dword [esi + 0x54], ecx
jmp 0x4643be
push ebp
push ebp
push 0x52a2ac
call fcn.004dad19
mov edi, dword [esp + 0x40]
mov dword [esi + 0x54], ebp
mov dword [esi + 0x58], ebp
mov ecx, dword [esi + 0x88]
cmp dword [ecx + 0x98], ebp
je 0x4643fc
mov eax, dword [ecx + 0x2a0]
lea edx, [edi + edi*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 + 0x38], ebx
mov ebx, dword [ecx + 0x2d8]
mov eax, dword [ebx + eax + 8]
lea edx, [eax + edx*2]
mov dword [esp + 0x48], edx
jmp 0x464469
cmp dword [ecx + 0x74], ebp
jne 0x46441e
cmp dword [ecx + 0x80], ebp
jne 0x46441e
mov edx, dword [ecx + 0x2d8]
mov eax, edi
shl eax, 5
mov eax, dword [edx + eax + 8]
mov dword [esp + 0x48], eax
jmp 0x464469
mov eax, dword [ecx + 0x150]
lea edx, [edi + edi*2]
lea edx, [eax + edx*4]
mov eax, dword [edx]
mov ebp, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x38], edx
mov edx, dword [ecx + 0x284]
dec edx
cmp edx, eax
mov ebx, edx
jl 0x464445
mov ebx, eax
test ebx, ebx
jge 0x46444d
xor eax, eax
jmp 0x464453
cmp edx, eax
jge 0x464453
mov eax, edx
mov edx, dword [ecx + 0x2d8]
shl eax, 5
mov eax, dword [edx + eax + 8]
lea edx, [eax + ebp*2]
xor ebp, ebp
mov dword [esp + 0x48], edx
cmp dword [ecx + 0x78], ebp
je 0x4644e6
cmp edi, ebp
je 0x4644e6
cmp dword [ecx + 0x98], ebp
je 0x46449a
mov edx, dword [ecx + 0x2a0]
lea eax, [edi + edi*2]
lea eax, [edx + eax*4]
mov edx, eax
mov eax, dword [edx]
mov dword [esp + 0x30], eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x38], edx
jmp 0x4644bd
cmp dword [ecx + 0x74], ebp
je 0x4644e6
mov edx, dword [ecx + 0x150]
lea eax, [edi + edi*2]
lea eax, [edx + eax*4]
mov edx, eax
mov eax, dword [edx]
mov dword [esp + 0x30], eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x38], edx
xor edx, edx
cmp eax, ebp
setg dl
mov eax, edx
cmp eax, ebp
je 0x4644e6
mov eax, dword [esi + 0x58]
push ebp
push eax
call fcn.0044e550
mov ecx, dword [esi + 0x88]
push eax
call fcn.00455070
mov edi, dword [esp + 0x40]
jmp 0x4644ea
mov eax, dword [esp + 0x10]
mov ebx, dword [esi + 0x88]
mov ecx, dword [0x5361f4]
mov ebp, eax
mov eax, dword [esp + 0x44]
add ebx, 0x100
mov dword [esp + 0x14], ecx
test eax, eax
jle 0x4645bd
mov edx, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
mov ax, word [eax]
cmp ax, 9
jne 0x464534
mov ecx, dword [ebx]
mov eax, ebp
cdq
idiv ecx
sub ecx, edx
add ebp, ecx
jmp 0x4645a3
mov dword [esp + 0x4c], eax
and eax, 0xffff
cmp word [eax*2 + 0x53623c], 0
lea eax, [eax*2 + 0x53623c]
jne 0x46459c
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x50]
push 1
push edx
push eax
call dword [0x4fd160]
mov eax, dword [0x536238]
test eax, eax
je 0x46457f
mov ecx, dword [0x536220]
mov eax, dword [esp + 0x30]
sub eax, ecx
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x4c]
mov cx, word [esp + 0x30]
mov edi, dword [esp + 0x40]
and edx, 0xffff
lea eax, [edx*2 + 0x53623c]
mov word [eax], cx
xor edx, edx
mov dx, word [eax]
add ebp, edx
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
add ecx, 2
dec eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x10], eax
jne 0x46451a
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x120], ebp
imul ecx, dword [0x536214]
mov edx, dword [esi + 0x88]
mov eax, ebp
sub eax, ecx
mov dword [esi + 0x110], eax
mov ecx, dword [edx + 0x74]
test ecx, ecx
je 0x464613
mov ecx, dword [edx + 0xa4]
test ecx, ecx
jne 0x464613
mov ecx, dword [esi + 0x118]
add ecx, 0xfffffffe
cmp ecx, eax
mov ebx, ecx
jl 0x4645ff
mov ebx, eax
test ebx, ebx
jge 0x464607
xor eax, eax
jmp 0x46460d
cmp ecx, eax
jge 0x46460d
mov eax, ecx
mov dword [esi + 0x110], eax
sub edi, dword [esi + 0x60]
imul edi, dword [0x536200]
mov dword [esi + 0x114], edi
mov eax, dword [0x536214]
mov ecx, dword [edx + 0xe0]
shl eax, 5
add eax, ebp
cmp eax, ecx
jle 0x46463d
mov dword [edx + 0xe0], eax
mov eax, dword [esi + 0xfc]
test eax, eax
je 0x4646d3
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x13c]
mov dword [esi + 0x5c], ecx
mov ecx, dword [esi + 0x110]
mov dword [esi + 0x54], edx
mov edx, dword [esp + 0x24]
cmp eax, ecx
mov dword [esi + 0x120], edx
jne 0x46468a
mov ecx, dword [esi + 0x140]
mov edx, dword [esi + 0x114]
cmp ecx, edx
je 0x4646b5
cmp eax, 0xffffffff
je 0x464696
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 + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [esi + 0x110], ecx
mov dword [esi + 0x114], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret 0x10
mov eax, dword [esi + 0xd4]
test eax, eax
je 0x4646e7
mov eax, dword [esi + 0x1c]
push eax
call dword [0x4fd4d0]
mov ecx, esi
call fcn.004778f0
test eax, eax
jne 0x4646f9
mov ecx, esi
call fcn.00463d80
mov ecx, esi
call fcn.00463f80
mov ecx, dword [0x55f3fc]
cmp dword [ecx + 0xd74], 1
jne 0x464716
mov ecx, esi
call fcn.00464dc0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret 0x10