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

Disassembly:
mov eax, 0x66e340
call fcn.006313fc
sub esp, 0x148
push ebx
xor ebx, ebx
mov dword [esp + 0x2c], ebx
call fcn.004712d1
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
sar ecx, 2
test ecx, ecx
je 0x46ee2d
push ebp
push esi
push edi
mov edi, dword [esp + 0x16c]
call fcn.004712d1
mov eax, dword [eax]
mov eax, dword [eax + ebx*4]
mov dword [esp + 0x34], eax
mov ebp, dword [eax + 8]
mov esi, dword [ebp]
test esi, esi
je 0x46ee10
movzx ebx, word [ebp + 4]
add ebx, dword [eax]
movzx eax, word [ebp + 6]
and eax, 0xf
cmp eax, 7
jg 0x46ec53
je 0x46ebb1
test eax, eax
je 0x46eb0f
jle 0x46edfa
cmp eax, 3
jle 0x46ea52
cmp eax, 4
je 0x46eae2
cmp eax, 5
je 0x46ea91
cmp eax, 6
jne 0x46edfa
push ebp
call fcn.0046e27f
mov ecx, edx
mov ebx, eax
mov dword [esp + 0x10], ecx
test edi, edi
je 0x46ea6e
push ecx
push ebx
push esi
mov ecx, edi
call fcn.0045bac4
test byte [ebp + 8], 1
je 0x46ea80
mov ecx, eax
or ecx, edx
jne 0x46ea80
mov edx, dword [esp + 0x10]
mov eax, ebx
push edx
push eax
push ebp
push dword [esp + 0x40]
call fcn.00471201
jmp 0x46edfa
test edi, edi
je 0x46edfa
push 1
push dword [ebx]
call fcn.0045d916
and dword [ebx + 4], 0
lea eax, [esp + 0x18]
push eax
push esi
mov ecx, edi
call fcn.0045bcaf
test eax, eax
je 0x46ead6
cmp dword [esp + 0x18], 0
je 0x46ead6
push dword [esp + 0x18]
push eax
call fcn.004c5fbd
mov dword [ebx], eax
mov eax, dword [esp + 0x18]
mov dword [ebx + 4], eax
jmp 0x46edfa
and dword [ebx], 0
and dword [ebx + 4], 0
jmp 0x46edfa
test edi, edi
je 0x46edfa
push dword [ebp + 8]
mov ecx, edi
push esi
call fcn.0045bc70
test eax, eax
je 0x46edfa
push dword [ebp + 8]
push eax
push ebx
call fcn.00631810
add esp, 0xc
jmp 0x46edfa
xor ecx, ecx
mov dword [esp + 0x30], 7
xor eax, eax
mov dword [esp + 0x2c], ecx
mov word [esp + 0x1c], ax
mov dword [esp + 0x160], ecx
test edi, edi
je 0x46eb61
push ecx
push esi
lea eax, [esp + 0xfc]
mov ecx, edi
push eax
call fcn.0045bd54
push eax
lea ecx, [esp + 0x20]
call fcn.0044dbe6
push 0
push 1
lea ecx, [esp + 0xfc]
call fcn.0042341c
cmp dword [esp + 0x2c], 0
jne 0x46eb8b
push dword [ebp + 0xc]
lea eax, [esp + 0xb0]
push eax
call fcn.004243aa
push eax
lea ecx, [esp + 0x20]
call fcn.0044dbe6
push 0
push 1
lea ecx, [esp + 0xb4]
call fcn.0042341c
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call fcn.0044dbe6
or dword [esp + 0x160], 0xffffffff
lea ecx, [esp + 0x1c]
push 0
push 1
call fcn.0042341c
jmp 0x46edfa
and dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0xf
mov byte [esp + 0x1c], 0
mov dword [esp + 0x160], 1
test edi, edi
je 0x46ec03
push esi
lea eax, [esp + 0x80]
mov ecx, edi
push eax
call fcn.0045bbbd
push eax
lea ecx, [esp + 0x20]
call fcn.00409822
push 0
push 1
lea ecx, [esp + 0x84]
call fcn.0040a0e9
cmp dword [esp + 0x2c], 0
jne 0x46ec2d
push dword [ebp + 0xc]
lea eax, [esp + 0xe0]
push eax
call fcn.004627fd
push eax
lea ecx, [esp + 0x20]
call fcn.00409822
push 0
push 1
lea ecx, [esp + 0xe4]
call fcn.0040a0e9
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call fcn.00409822
or dword [esp + 0x160], 0xffffffff
lea ecx, [esp + 0x1c]
push 0
push 1
call fcn.0040a0e9
jmp 0x46edfa
sub eax, 8
je 0x46ef0c
dec eax
je 0x46ee40
dec eax
je 0x46ec95
sub eax, 5
jne 0x46edfa
test edi, edi
je 0x46edfa
push 0xffffffffffffffff
push esi
mov ecx, edi
call fcn.0045ba72
test eax, eax
je 0x46edfa
push 0
push ebx
push eax
call dword [ebp + 0x14]
jmp 0x46edfa
test edi, edi
je 0x46edfa
push 0xffffffffffffffff
push esi
mov ecx, edi
call fcn.0045ba72
mov esi, eax
mov dword [esp + 0x14], esi
test esi, esi
je 0x46edfa
mov ecx, ebx
call fcn.00471304
mov ecx, dword [esi + 8]
mov esi, dword [ecx]
mov esi, dword [esi]
mov dword [esp + 0x10], esi
cmp esi, dword [ecx]
je 0x46edfa
mov edi, dword [esp + 0x14]
mov eax, dword [esi + 0x14]
lea ecx, [esp + 0x3c]
sub eax, dword [esi + 0x10]
dec eax
push eax
push dword [esi + 0x10]
call fcn.0043def6
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x160], 5
je 0x46edc6
lea ecx, [esi + 0x1c]
test ecx, ecx
je 0x46ed0a
cmp byte [ecx + 0x10], 3
je 0x46ed0c
xor ecx, ecx
push 0
call fcn.0045bc30
push eax
lea ecx, [esp + 0x58]
call fcn.00409ba7
cmp dword [esp + 0x68], 0x10
mov eax, dword [esp + 0x54]
mov byte [esp + 0x160], 6
jae 0x46ed34
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.0047a531
mov esi, eax
cmp dword [esp + 0x50], 0x10
mov ecx, dword [esp + 0x3c]
mov byte [esp + 0x160], 7
jae 0x46ed5b
lea ecx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x98]
push eax
call fcn.0047a531
push esi
push eax
lea eax, [esp + 0x130]
push eax
call fcn.0046d732
push eax
lea eax, [esp + 0x78]
mov byte [esp + 0x164], 9
push eax
mov ecx, ebx
call fcn.0046d6e5
lea ecx, [esp + 0x128]
call fcn.0046dc79
push 0
push 1
lea ecx, [esp + 0x9c]
call fcn.0042341c
push 0
push 1
lea ecx, [esp + 0xcc]
call fcn.0042341c
push 0
push 1
lea ecx, [esp + 0x5c]
call fcn.0040a0e9
or dword [esp + 0x160], 0xffffffff
lea ecx, [esp + 0x3c]
push 0
push 1
call fcn.0040a0e9
lea ecx, [esp + 0x10]
call fcn.0045d8b6
mov eax, dword [edi + 8]
mov esi, dword [esp + 0x10]
cmp esi, dword [eax]
jne 0x46ecd3
mov edi, dword [esp + 0x16c]
mov eax, dword [esp + 0x34]
add ebp, 0x18
mov esi, dword [ebp]
test esi, esi
jne 0x46ea0c
mov ebx, dword [esp + 0x38]
inc ebx
mov dword [esp + 0x38], ebx
call fcn.004712d1
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
sar ecx, 2
cmp ebx, ecx
jb 0x46e9f0
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x14c]
pop ebx
mov dword fs:[0], ecx
leave
ret 4
test edi, edi
je 0x46edfa
push 0xffffffffffffffff
push esi
mov ecx, edi
call fcn.0045ba72
mov esi, eax
mov dword [esp + 0x14], esi
test esi, esi
je 0x46edfa
mov ecx, ebx
call fcn.004c37bd
mov ecx, dword [esi + 8]
mov esi, dword [ecx]
mov esi, dword [esi]
mov dword [esp + 0x10], esi
cmp esi, dword [ecx]
je 0x46edfa
mov edi, dword [esp + 0x14]
push dword [esi + 0x10]
lea ecx, [esp + 0x20]
call fcn.00409ba7
push 0
lea ecx, [esi + 0x1c]
mov dword [esp + 0x164], 3
call fcn.0045bb16
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x14], eax
je 0x46eeda
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x114]
push eax
call fcn.0046d70b
push eax
lea eax, [esp + 0x70]
mov byte [esp + 0x164], 4
push eax
mov ecx, ebx
call fcn.0046d6bf
push 0
push 1
lea ecx, [esp + 0x114]
call fcn.0040a0e9
or dword [esp + 0x160], 0xffffffff
lea ecx, [esp + 0x1c]
push 0
push 1
call fcn.0040a0e9
lea ecx, [esp + 0x10]
call fcn.0045d8b6
mov eax, dword [edi + 8]
mov esi, dword [esp + 0x10]
cmp esi, dword [eax]
jne 0x46ee72
jmp 0x46edf3
test edi, edi
je 0x46edfa
mov ecx, ebx
call fcn.00614a15
push 0xffffffffffffffff
push esi
mov ecx, edi
call fcn.0045bb6f
xor esi, esi
mov dword [esp + 0x14], eax
test eax, eax
je 0x46edfa
mov edi, eax
mov ecx, edi
call fcn.0045ba56
cmp esi, eax
je 0x46edf3
push 0
push esi
lea eax, [esp + 0x24]
mov ecx, edi
push eax
call fcn.0045bd9b
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x160], 2
je 0x46ef71
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call fcn.00487cfe
or dword [esp + 0x160], 0xffffffff
lea ecx, [esp + 0x1c]
push 0
push 1
call fcn.0042341c
inc esi
jmp 0x46ef35