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

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0x88]
cmp dword [eax + 0xf8], 2
jne 0x46608c
xor ebp, ebp
jmp 0x466090
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
test ebx, ebx
jle 0x4664e6
mov ecx, dword [edi + 0x58]
mov edx, dword [edi + 0x54]
mov eax, dword [0x55f84c]
mov dword [esp + 0x14], ecx
test ebp, ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], eax
je 0x4660c1
mov dword [0x55f84c], 0
mov ecx, dword [edi + 0x54]
mov edx, dword [edi + 0x58]
push ecx
lea eax, [esp + 0x38]
push edx
lea ecx, [esp + 0x40]
push eax
push ecx
mov ecx, dword [edi + 0x88]
call fcn.00453e10
mov esi, dword [esp + 0x38]
test esi, esi
jle 0x46615b
mov eax, dword [edi + 0x114]
cdq
idiv dword [0x536200]
add eax, dword [edi + 0x60]
cmp esi, eax
jle 0x46615b
mov eax, dword [edi + 0x88]
dec esi
mov dword [esp + 0x38], esi
mov ecx, dword [eax + 0x98]
test ecx, ecx
je 0x466122
mov eax, dword [eax + 0x2a0]
lea edx, [esi + esi*2]
mov eax, dword [eax + edx*4 + 8]
mov dword [esp + 0x34], eax
jmp 0x46615f
mov ecx, dword [eax + 0x74]
test ecx, ecx
jne 0x466148
mov ecx, dword [eax + 0x80]
test ecx, ecx
jne 0x466148
mov edx, dword [eax + 0x2d8]
mov ecx, esi
shl ecx, 5
mov eax, dword [edx + ecx]
dec eax
mov dword [esp + 0x34], eax
jmp 0x46615f
mov edx, dword [eax + 0x150]
lea ecx, [esi + esi*2]
mov eax, dword [edx + ecx*4 + 8]
mov dword [esp + 0x34], eax
jmp 0x46615f
mov eax, dword [esp + 0x34]
mov ecx, dword [edi + 0x5c]
test ecx, ecx
jle 0x4663dd
test ebp, ebp
jne 0x4663dd
mov edx, dword [0x55f84c]
test edx, edx
jne 0x466186
cmp ebx, 1
jne 0x466186
mov dword [edi + 0x5c], ebp
jmp 0x46618b
sub ecx, ebx
mov dword [edi + 0x5c], ecx
mov ecx, dword [edi + 0x5c]
add ecx, eax
jns 0x466197
neg eax
mov dword [edi + 0x5c], eax
mov ecx, dword [edi + 0x5c]
test ecx, ecx
jg 0x4661bd
mov edx, dword [edi + 0x54]
mov eax, dword [edi + 0x58]
push 0
add edx, ecx
push 0
push edx
push eax
mov ecx, edi
call fcn.00464180
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x10
mov ecx, dword [edi + 0x88]
xor ebp, ebp
mov eax, dword [ecx + 0x78]
test eax, eax
je 0x466249
test esi, esi
je 0x466249
mov eax, dword [ecx + 0x98]
test eax, eax
je 0x4661fa
mov eax, dword [ecx + 0x2a0]
lea edx, [esi + esi*2]
lea edx, [eax + edx*4]
mov eax, edx
mov edx, dword [eax]
mov dword [esp + 0x18], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
jmp 0x46621f
mov eax, dword [ecx + 0x74]
test eax, eax
je 0x466249
mov eax, dword [ecx + 0x150]
lea edx, [esi + esi*2]
lea edx, [eax + edx*4]
mov eax, edx
mov edx, dword [eax]
mov dword [esp + 0x18], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
xor eax, eax
test edx, edx
setg al
mov edx, eax
test edx, edx
je 0x466249
mov edx, dword [edi + 0x58]
push 0
push edx
call fcn.0044e550
mov ecx, dword [edi + 0x88]
push eax
call fcn.00455070
mov esi, dword [esp + 0x38]
mov ebp, eax
mov ebx, dword [edi + 0x88]
mov eax, dword [ebx + 0x98]
test eax, eax
je 0x466285
mov ecx, dword [ebx + 0x2a0]
lea eax, [esi + esi*2]
lea edx, [ecx + eax*4]
mov eax, edx
mov ecx, dword [eax]
shl ecx, 5
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x2d8]
mov ecx, dword [eax + ecx + 8]
lea esi, [ecx + edx*2]
jmp 0x4662eb
mov eax, dword [ebx + 0x74]
test eax, eax
jne 0x4662a5
mov eax, dword [ebx + 0x80]
test eax, eax
jne 0x4662a5
mov edx, dword [ebx + 0x2d8]
shl esi, 5
mov esi, dword [edx + esi + 8]
jmp 0x4662eb
mov ecx, dword [ebx + 0x150]
lea eax, [esi + esi*2]
lea edx, [ecx + eax*4]
mov ecx, dword [ecx + eax*4]
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x2c], edx
mov edx, dword [ebx + 0x284]
dec edx
cmp edx, ecx
mov esi, edx
jl 0x4662cd
mov esi, ecx
test esi, esi
jge 0x4662d5
xor ecx, ecx
jmp 0x4662db
cmp edx, ecx
jge 0x4662db
mov ecx, edx
mov edx, dword [ebx + 0x2d8]
shl ecx, 5
mov ecx, dword [ecx + edx + 8]
lea esi, [ecx + eax*2]
mov eax, dword [esp + 0x34]
mov edx, dword [0x5361f4]
test eax, eax
mov dword [esp + 0x14], edx
jle 0x466399
mov dword [esp + 0x10], eax
mov ax, word [esi]
cmp ax, 9
jne 0x46631d
mov ecx, dword [ebx + 0x100]
mov eax, ebp
cdq
idiv ecx
sub ecx, edx
jmp 0x466385
mov dword [esp + 0x3c], eax
and eax, 0xffff
cmp word [eax*2 + 0x53623c], 0
lea eax, [eax*2 + 0x53623c]
jne 0x466380
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x40]
push 1
push ecx
push edx
call dword [0x4fd160]
mov eax, dword [0x536238]
test eax, eax
je 0x466367
mov eax, dword [0x536220]
mov ecx, dword [esp + 0x18]
sub ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x3c]
mov dx, word [esp + 0x18]
and ecx, 0xffff
lea eax, [ecx*2 + 0x53623c]
mov word [eax], dx
xor ecx, ecx
mov cx, word [eax]
mov eax, dword [esp + 0x10]
add ebp, ecx
add esi, 2
dec eax
mov dword [esp + 0x10], eax
jne 0x466305
mov edx, dword [edi + 0x5c]
mov ecx, dword [edi + 0x64]
imul edx, dword [0x5355b0]
lea eax, [edx + ebp]
mov dword [edi + 0x120], eax
imul ecx, dword [0x536214]
sub eax, ecx
mov ecx, edi
mov dword [edi + 0x110], eax
call fcn.00463f80
mov ecx, edi
call fcn.004778f0
mov ecx, edi
call fcn.00464dc0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x10
test eax, eax
jle 0x466401
cmp eax, ebx
jge 0x4663e7
mov ebx, eax
mov edx, dword [edi + 0x54]
mov eax, dword [edi + 0x58]
push 0
sub edx, ebx
push 0
push edx
push eax
mov ecx, edi
call fcn.00464180
jmp 0x4664bd
test esi, esi
jle 0x4664b6
mov eax, dword [edi + 0x88]
mov ecx, dword [eax + 0x98]
test ecx, ecx
je 0x466439
mov edx, dword [eax + 0x2a0]
lea ecx, [esi + esi*2]
lea ecx, [edx + ecx*4]
mov edx, ecx
mov ecx, dword [edx]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x2c], edx
jmp 0x46645e
mov ecx, dword [eax + 0x74]
test ecx, ecx
je 0x466481
mov edx, dword [eax + 0x150]
lea ecx, [esi + esi*2]
lea ecx, [edx + ecx*4]
mov edx, ecx
mov ecx, dword [edx]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x2c], edx
xor edx, edx
test ecx, ecx
setg dl
mov ecx, edx
test ecx, ecx
je 0x466481
mov eax, dword [edi + 0x54]
mov ecx, dword [edi + 0x58]
push 0
dec eax
push 0
push eax
push ecx
mov ecx, edi
call fcn.00464180
jmp 0x4664bd
mov ecx, dword [0x55f84c]
test ecx, ecx
je 0x466493
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x4664b6
mov ecx, dword [edi + 0x58]
mov eax, dword [eax + 0x2d8]
mov edx, ecx
push 1
shl edx, 5
push 0
mov edx, dword [eax + edx - 0x20]
dec edx
dec ecx
push edx
push ecx
mov ecx, edi
call fcn.00464180
jmp 0x4664bd
mov ecx, edi
call fcn.004778f0
test ebp, ebp
je 0x4664ed
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push eax
push ecx
mov ecx, edi
call fcn.00465a10
mov edx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
mov dword [0x55f84c], edx
pop ebx
add esp, 0x20
ret 0x10
mov ecx, edi
call fcn.004778f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x10