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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov ebx, eax
mov byte [ebp - 9], 0
mov eax, dword [ebx + 0x44]
mov edx, dword [ebp - 4]
mov esi, dword [eax + edx*4]
cmp dword [ebp + 0x10], 0
je 0x46b1c4
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
cmp dword [edx + eax*4 + 0x14], 0
je 0x46b1c4
mov edx, dword [ebx + 0x48]
cmp dword [edx + eax*4 + 8], 0
je 0x46b1c4
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov eax, dword [edx + eax*4 + 8]
imul dword [ebx]
mov edx, dword [ebp - 8]
add edx, dword [ebp + 0x14]
cmp eax, edx
jb 0x46b1c4
mov eax, ebx
xor ecx, ecx
mov edx, esi
call fcn.0046878c
mov edi, eax
test edi, edi
je 0x46a99f
add edi, dword [ebp - 8]
mov ecx, dword [ebp + 0x14]
mov edx, edi
mov eax, dword [ebp + 8]
call fcn.0046a4f0
cmp eax, dword [ebp + 0x14]
jb 0x46a984
mov byte [ebp - 9], 1
jmp 0x46b1c4
add edi, eax
add dword [ebp + 8], eax
add dword [ebp - 8], eax
sub dword [ebp + 0x14], eax
mov ecx, dword [ebp + 0x14]
mov edx, edi
mov eax, dword [ebp + 8]
call fcn.0046a514
mov dword [ebp + 0x14], eax
mov edi, dword [ebx + 0x7c]
cmp edi, 0xffffffff
je 0x46aaa3
inc edi
cmp edi, dword [ebx + 0x80]
jl 0x46aaa3
cmp dword [ebx + 0x6c], 0
je 0x46aaa3
cmp byte [ebx + 0x60], 0
jne 0x46a9f0
mov eax, ebx
call fcn.0046a5cc
cmp eax, dword [ebp + 0x10]
jne 0x46aaa3
mov eax, dword [ebx + 0x7c]
lea eax, [eax + eax*2]
mov edx, dword [ebx + 0x78]
movzx eax, word [edx + eax*8 + 0x14]
cmp ax, word [ebp + 0xc]
jne 0x46aaa3
cmp byte [ebx + 0x60], 0
jne 0x46aaae
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
lea eax, [edx + eax*4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edx
push eax
mov eax, dword [ebx + 0x7c]
lea eax, [eax + eax*2]
mov edx, dword [ebx + 0x78]
lea eax, [edx + eax*8 + 4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
cmp edx, dword [esp + 4]
jne 0x46aa2f
cmp eax, dword [esp]
pop edx
pop eax
ja 0x46aaa3
jmp 0x46aa33
pop edx
pop eax
jg 0x46aaa3
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov eax, dword [edx + eax*4 + 8]
xor edx, edx
push edx
push eax
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
lea eax, [edx + eax*4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebx + 0x7c]
lea eax, [eax + eax*2]
mov edx, dword [ebx + 0x78]
mov eax, dword [edx + eax*8 + 0xc]
xor edx, edx
push edx
push eax
mov eax, dword [ebx + 0x7c]
lea eax, [eax + eax*2]
mov edx, dword [ebx + 0x78]
lea eax, [edx + eax*8 + 4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
cmp edx, dword [esp + 4]
jne 0x46aa9f
cmp eax, dword [esp]
pop edx
pop eax
jae 0x46aaae
jmp 0x46aaa3
pop edx
pop eax
jge 0x46aaae
mov eax, ebx
call fcn.0046a5e4
inc eax
mov dword [ebx + 0x64], eax
mov eax, dword [ebx]
cmp eax, dword [ebp - 8]
jbe 0x46aad6
mov edx, dword [ebp - 8]
add edx, dword [ebp + 0x14]
add edx, eax
mov ecx, esi
shl ecx, 4
add ecx, esi
mov edi, dword [ebx + 0x48]
mov ecx, dword [edi + ecx*4 + 8]
imul ecx, eax
cmp edx, ecx
ja 0x46ab9f
mov ecx, esi
shl ecx, 4
add ecx, esi
mov eax, dword [ebx + 0x48]
cmp dword [eax + ecx*4 + 0x40], 0
je 0x46ab40
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov eax, dword [edx + eax*4 + 0x40]
mov edx, dword [ebx + 0x48]
cmp eax, dword [edx + ecx*4 + 0x3c]
je 0x46ab40
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov eax, dword [edx + eax*4 + 0x40]
lea eax, [eax + eax*2]
mov edx, dword [ebx + 0x48]
mov edx, dword [edx + ecx*4 + 0x30]
mov eax, dword [edx + eax*4 - 8]
cmp eax, dword [ebx + 0x64]
jne 0x46ab40
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov eax, dword [edx + eax*4 + 0x40]
lea eax, [eax + eax*2]
mov edx, dword [ebx + 0x48]
mov edx, dword [edx + ecx*4 + 0x30]
mov eax, dword [edx + eax*4 - 4]
cmp eax, dword [ebp + 0x10]
je 0x46ab9f
mov eax, dword [ebp - 8]
add eax, dword [ebp + 0x14]
add eax, dword [ebx]
dec eax
xor edx, edx
div dword [ebx]
mov edi, eax
mov eax, dword [ebp - 8]
xor edx, edx
div dword [ebx]
sub edi, eax
push edi
mov eax, dword [ebx + 0x48]
mov eax, dword [eax + ecx*4 + 0x14]
push eax
mov eax, dword [ebx + 0x48]
movzx eax, byte [eax + ecx*4 + 0x18]
push eax
mov eax, dword [ebp - 8]
xor edx, edx
div dword [ebx]
mov ecx, eax
mov eax, ebx
mov edx, dword [ebp - 4]
call fcn.004687f4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
je 0x46b1c4
mov eax, dword [ebx + 0x44]
mov edx, dword [ebp - 4]
mov esi, dword [eax + edx*4]
mov ecx, dword [ebx]
mov eax, dword [ebp - 8]
xor edx, edx
div ecx
mov dword [ebp - 8], edx
mov edi, dword [ebx + 0x7c]
cmp edi, 0xffffffff
je 0x46aca6
cmp dword [ebx + 0x6c], 0
je 0x46aca6
lea eax, [edi + edi*2]
mov edx, dword [ebx + 0x78]
mov eax, dword [edx + eax*8]
cmp eax, dword [ebx + 0x64]
jne 0x46aca6
cmp byte [ebx + 0x60], 0
jne 0x46abf5
mov eax, ebx
call fcn.0046a5cc
cmp eax, dword [ebp + 0x10]
jne 0x46aca6
mov eax, dword [ebx + 0x7c]
lea eax, [eax + eax*2]
mov edx, dword [ebx + 0x78]
movzx eax, word [edx + eax*8 + 0x14]
cmp ax, word [ebp + 0xc]
jne 0x46aca6
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
lea eax, [edx + eax*4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edx
push eax
mov eax, dword [ebx + 0x7c]
lea eax, [eax + eax*2]
mov edx, dword [ebx + 0x78]
lea eax, [edx + eax*8 + 4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
cmp edx, dword [esp + 4]
jne 0x46ac2a
cmp eax, dword [esp]
pop edx
pop eax
ja 0x46aca6
jmp 0x46ac2e
pop edx
pop eax
jg 0x46aca6
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov eax, dword [edx + eax*4 + 8]
xor edx, edx
push edx
push eax
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
lea eax, [edx + eax*4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebx + 0x7c]
lea eax, [eax + eax*2]
mov edx, dword [ebx + 0x78]
mov eax, dword [edx + eax*8 + 0xc]
xor edx, edx
push edx
push eax
mov eax, dword [ebx + 0x7c]
lea eax, [eax + eax*2]
mov edx, dword [ebx + 0x78]
lea eax, [edx + eax*8 + 4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
cmp edx, dword [esp + 4]
jne 0x46ac9e
cmp eax, dword [esp]
pop edx
pop eax
jae 0x46afd1
jmp 0x46aca6
pop edx
pop eax
jge 0x46afd1
mov eax, dword [ebx + 0x7c]
inc eax
cmp eax, dword [ebx + 0x80]
jge 0x46acb9
mov eax, ebx
call fcn.0046a798
mov eax, dword [ebx + 0x7c]
inc eax
cmp eax, dword [ebx + 0x80]
jne 0x46b1c4
mov byte [ebp - 0x11], 0
cmp byte [ebx + 0x60], 0
je 0x46af51
cmp dword [ebx + 0x7c], 0
jl 0x46af51
cmp dword [ebx + 0x6c], 0
jle 0x46af51
mov eax, dword [ebx + 0x7c]
lea eax, [eax + eax*2]
mov edx, dword [ebx + 0x78]
mov eax, dword [edx + eax*8]
cmp eax, dword [ebx + 0x64]
jne 0x46af51
mov ecx, dword [ebx + 0x7c]
lea eax, [ecx + ecx*2]
mov edx, dword [ebx + 0x78]
mov eax, dword [edx + eax*8 + 0xc]
xor edx, edx
push edx
push eax
lea eax, [ecx + ecx*2]
mov edx, dword [ebx + 0x78]
lea eax, [edx + eax*8 + 4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
lea eax, [edx + eax*4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
cmp edx, dword [esp + 4]
jne 0x46ad51
cmp eax, dword [esp]
pop edx
pop eax
ja 0x46af34
jmp 0x46ad59
pop edx
pop eax
jg 0x46af34
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov eax, dword [edx + eax*4 + 8]
xor edx, edx
push edx
push eax
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
lea eax, [edx + eax*4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
lea eax, [ecx + ecx*2]
mov edx, dword [ebx + 0x78]
lea eax, [edx + eax*8 + 4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
cmp edx, dword [esp + 4]
jne 0x46adab
cmp eax, dword [esp]
pop edx
pop eax
ja 0x46af34
jmp 0x46adb3
pop edx
pop eax
jg 0x46af34
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov eax, dword [edx + eax*4 + 8]
xor edx, edx
push edx
push eax
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
lea eax, [edx + eax*4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
lea eax, [ecx + ecx*2]
mov edx, dword [ebx + 0x78]
mov eax, dword [edx + eax*8 + 0xc]
xor edx, edx
push edx
push eax
lea eax, [ecx + ecx*2]
mov edx, dword [ebx + 0x78]
lea eax, [edx + eax*8 + 4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
cmp edx, dword [esp + 4]
jne 0x46ae19
cmp eax, dword [esp]
pop edx
pop eax
jae 0x46ae6f
jmp 0x46ae1d
pop edx
pop eax
jge 0x46ae6f
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov eax, dword [edx + eax*4 + 8]
xor edx, edx
push edx
push eax
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
lea eax, [edx + eax*4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
lea eax, [ecx + ecx*2]
mov edx, dword [ebx + 0x78]
lea eax, [edx + eax*8 + 4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
lea edx, [ecx + ecx*2]
mov edi, dword [ebx + 0x78]
mov dword [edi + edx*8 + 0xc], eax
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
lea eax, [edx + eax*4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edx
push eax
lea eax, [ecx + ecx*2]
mov edx, dword [ebx + 0x78]
lea eax, [edx + eax*8 + 4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
cmp edx, dword [esp + 4]
jne 0x46aea1
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x46af14
jmp 0x46aea5
pop edx
pop eax
jle 0x46af14
lea eax, [ecx + ecx*2]
mov edx, dword [ebx + 0x78]
mov eax, dword [edx + eax*8 + 0xc]
xor edx, edx
push edx
push eax
lea eax, [ecx + ecx*2]
mov edx, dword [ebx + 0x78]
lea eax, [edx + eax*8 + 4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
lea eax, [edx + eax*4]
mov edx, dword [eax + 4]
mov eax, dword [eax]
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
lea edx, [ecx + ecx*2]
mov edi, dword [ebx + 0x78]
mov dword [edi + edx*8 + 0xc], eax
lea eax, [ecx + ecx*2]
mov edx, dword [ebx + 0x78]
lea eax, [edx + eax*8 + 4]
mov edx, esi
shl edx, 4
add edx, esi
mov edi, dword [ebx + 0x48]
lea edi, [edi + edx*4]
mov edx, dword [edi]
mov dword [eax], edx
mov edx, dword [edi + 4]
mov dword [eax + 4], edx
lea eax, [ecx + ecx*2]
mov edx, dword [ebx + 0x78]
mov edi, dword [ebp + 0x10]
mov dword [edx + eax*8 + 0x10], edi
lea eax, [ecx + ecx*2]
mov edx, dword [ebx + 0x78]
movzx edi, word [ebp + 0xc]
mov word [edx + eax*8 + 0x14], di
mov byte [ebp - 0x11], 1
cmp byte [ebp - 0x11], 0
jne 0x46af51
test ecx, ecx
je 0x46af51
dec ecx
lea eax, [ecx + ecx*2]
mov edx, dword [ebx + 0x78]
mov eax, dword [edx + eax*8]
cmp eax, dword [ebx + 0x64]
je 0x46ad03
mov byte [ebx + 0x84], 0
cmp byte [ebp - 0x11], 0
jne 0x46afd1
inc dword [ebx + 0x7c]
inc dword [ebx + 0x80]
mov eax, dword [ebx + 0x80]
add eax, 0xff
and eax, 0xffffff00
mov edx, eax
add edx, edx
add edx, edx
add edx, edx
lea edx, [edx + edx*2]
lea eax, [ebx + 0x78]
call fcn.0040d7f8
mov eax, dword [ebx + 0x7c]
lea eax, [eax + eax*2]
mov edx, dword [ebx + 0x78]
lea eax, [edx + eax*8]
mov edx, dword [ebx + 0x64]
mov dword [eax], edx
mov edx, esi
shl edx, 4
add edx, esi
mov ecx, dword [ebx + 0x48]
mov edi, dword [ecx + edx*4]
mov dword [eax + 4], edi
mov edi, dword [ecx + edx*4 + 4]
mov dword [eax + 8], edi
mov edx, esi
shl edx, 4
add edx, esi
mov ecx, dword [ebx + 0x48]
mov edx, dword [ecx + edx*4 + 8]
mov dword [eax + 0xc], edx
mov edx, dword [ebp + 0x10]
mov dword [eax + 0x10], edx
movzx edx, word [ebp + 0xc]
mov word [eax + 0x14], dx
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov eax, dword [edx + eax*4 + 0x40]
test eax, eax
je 0x46b047
mov edx, esi
shl edx, 4
add edx, esi
mov ecx, dword [ebx + 0x48]
cmp eax, dword [ecx + edx*4 + 0x3c]
je 0x46b047
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov eax, dword [edx + eax*4 + 0x40]
lea eax, [eax + eax*2]
mov edx, esi
shl edx, 4
add edx, esi
mov ecx, dword [ebx + 0x48]
mov edx, dword [ecx + edx*4 + 0x30]
mov eax, dword [edx + eax*4 - 8]
cmp eax, dword [ebx + 0x64]
jne 0x46b047
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov eax, dword [edx + eax*4 + 0x40]
lea eax, [eax + eax*2]
mov edx, esi
shl edx, 4
add edx, esi
mov ecx, dword [ebx + 0x48]
mov edx, dword [ecx + edx*4 + 0x30]
mov eax, dword [edx + eax*4 - 4]
cmp eax, dword [ebp + 0x10]
je 0x46b0e0
mov eax, ebx
mov edx, esi
call fcn.0046a780
mov eax, ebx
xor ecx, ecx
mov edx, esi
call fcn.0046878c
mov edi, eax
mov eax, ebx
mov edx, esi
call fcn.00467f14
test edi, edi
je 0x46b0e0
mov eax, ebx
xor ecx, ecx
mov edx, esi
call fcn.0046878c
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x46b0e0
cmp dword [ebp - 8], 0
jbe 0x46b091
mov edx, dword [ebp - 0x18]
mov eax, edi
mov ecx, dword [ebp - 8]
call fcn.00402da0
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov eax, dword [edx + eax*4 + 8]
imul dword [ebx]
mov edx, dword [ebp - 8]
add edx, dword [ebp + 0x14]
cmp eax, edx
jbe 0x46b0e0
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov ecx, dword [edx + eax*4 + 8]
imul ecx, dword [ebx]
mov eax, dword [ebp - 8]
add eax, dword [ebp + 0x14]
sub ecx, eax
mov eax, dword [ebp - 8]
add eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x18]
lea eax, [edx + eax]
push eax
mov eax, dword [ebp - 8]
add eax, dword [ebp + 0x14]
lea eax, [edi + eax]
pop edx
call fcn.00402da0
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov eax, dword [edx + eax*4 + 0x40]
lea eax, [eax + eax*2]
mov edx, esi
shl edx, 4
add edx, esi
mov ecx, dword [ebx + 0x48]
mov edx, dword [ecx + edx*4 + 0x30]
lea eax, [edx + eax*4 - 0xc]
mov edx, dword [ebp + 0x10]
mov dword [eax + 8], edx
mov edx, dword [ebx + 0x64]
mov dword [eax + 4], edx
mov eax, ebx
xor ecx, ecx
mov edx, esi
call fcn.0046878c
mov edi, eax
test edi, edi
jne 0x46b17d
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
cmp dword [edx + eax*4 + 0x24], 0
jne 0x46b17d
cmp dword [ebp - 8], 0
jne 0x46b17d
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov eax, dword [edx + eax*4 + 8]
imul dword [ebx]
cmp eax, dword [ebp + 0x14]
jne 0x46b17d
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov eax, dword [edx + eax*4 + 8]
imul dword [ebx]
call fcn.0040d7d8
mov edx, esi
shl edx, 4
add edx, esi
mov ecx, dword [ebx + 0x48]
mov dword [ecx + edx*4 + 0x24], eax
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov edi, dword [edx + eax*4 + 0x24]
test edi, edi
je 0x46b192
mov eax, dword [ebp - 8]
lea edx, [edi + eax]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
call fcn.00402da0
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [ebx + 0x48]
mov ecx, dword [ebx + 0xc]
mov dword [edx + eax*4 + 0x28], ecx
mov ecx, dword [ebx + 0x10]
mov dword [edx + eax*4 + 0x2c], ecx
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
add eax, 1
adc edx, 0
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], edx
mov byte [ebx + 0x54], 0
mov byte [ebp - 9], 1
movzx eax, byte [ebp - 9]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10