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

Disassembly:
sub esp, 0x14
cmp dword [esp + 0x20], 0
push ebx
mov ebx, dword [esp + 0x1c]
push ebp
push esi
push edi
mov eax, dword [ebx + 0x440]
mov edi, dword [eax]
mov dword [esp + 0x10], edi
je 0x46eec2
push 1
push ebx
call fcn.0046da80
add esp, 8
test eax, eax
je 0x46ef0b
cmp byte [eax], 1
jne 0x46ef0b
push 1
push ebx
call fcn.0046da80
add esp, 8
test eax, eax
je 0x46ef0b
cmp byte [eax], 2
jne 0x46ef25
push 1
push ebx
call fcn.0046da80
add esp, 8
test eax, eax
je 0x46ef0b
cmp byte [eax], 0
je 0x46ef16
lea eax, [esp + 0x1c]
push eax
push ebx
call fcn.0046e2c0
add esp, 8
test eax, eax
js 0x46ef0b
push 1
push ebx
call fcn.0046da80
add esp, 8
test eax, eax
jne 0x46eee5
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x14
ret
push 1
push ebx
call fcn.0046da80
add esp, 8
test eax, eax
je 0x46ef0b
cmp byte [eax], 4
jne 0x46ef47
push edi
push ebx
call fcn.0046f710
add esp, 8
test eax, eax
js 0x46ef0b
push 1
push ebx
call fcn.0046da80
add esp, 8
test eax, eax
je 0x46ef0b
mov al, byte [eax]
test al, al
je 0x46f567
cmp al, 5
jne 0x46ef0b
lea ebp, [edi + 0x78]
push ebp
push ebx
call fcn.0046e2c0
add esp, 8
test eax, eax
js 0x46ef0b
cmp dword [ebp + 4], 0
mov eax, dword [ebp]
ja 0x46ef0b
jb 0x46ef78
cmp eax, 0x5f5e100
ja 0x46ef0b
push 0x48
push eax
call fcn.00681a00
mov esi, eax
add esp, 8
mov dword [esp + 0x18], esi
mov dword [edi + 0x80], esi
test esi, esi
je 0x46ef0b
push 1
push ebx
mov dword [esp + 0x1c], 0
call fcn.0046da80
add esp, 8
test eax, eax
je 0x46ef0b
movzx edi, byte [eax]
test edi, edi
je 0x46f348
lea eax, [esp + 0x1c]
push eax
push ebx
call fcn.0046e2c0
add esp, 8
test eax, eax
js 0x46ef0b
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x54]
cmp eax, dword [esp + 0x20]
jb 0x46ef0b
mov esi, dword [esp + 0x1c]
ja 0x46eff3
cmp dword [ecx + 0x50], esi
jb 0x46ef0b
lea eax, [edi - 0xe]
cmp eax, 0xb
ja case.0x46efff.22
jmp dword [eax*4 + 0x46f574]
mov esi, dword [esp + 0x2c]
cmp dword [esi + 8], 0
jne 0x46ef0b
push 1
push dword [ebp]
call fcn.00681a00
add esp, 8
mov dword [esi + 8], eax
test eax, eax
je 0x46ef0b
push dword [ebp]
push eax
push ebx
call fcn.0046e550
add esp, 0xc
test eax, eax
js 0x46ef0b
mov esi, dword [ebp + 4]
xor edi, edi
mov edx, dword [ebp]
xor ecx, ecx
mov dword [esp + 0x14], edi
test esi, esi
jb 0x46f083
ja 0x46f059
test edx, edx
je 0x46f083
mov edi, dword [esp + 0x2c]
mov ebx, ecx
mov edi, dword [edi + 8]
cmp byte [edi + ecx], 0
lea eax, [ebx + 1]
cmove eax, ebx
inc ecx
mov ebx, eax
xor eax, eax
cmp eax, esi
jb 0x46f062
ja 0x46f07b
cmp ecx, edx
jb 0x46f062
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x28]
push 1
push ebx
call fcn.0046da80
add esp, 8
test eax, eax
jne 0x46efb2
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x14
ret
mov edi, dword [esp + 0x14]
test edi, edi
jg 0x46f0bd
push esi
push ebx
call fcn.0046da80
add esp, 8
test eax, eax
je 0x46ef0b
jmp 0x46f083
mov esi, dword [esp + 0x2c]
cmp dword [esi + 0xc], 0
jne 0x46ef0b
push 1
push edi
call fcn.00681a00
mov dword [esi + 0xc], eax
add esp, 8
test eax, eax
je 0x46ef0b
push edi
push eax
push ebx
call fcn.0046e550
add esp, 0xc
test eax, eax
js 0x46ef0b
jmp 0x46f083
mov edi, dword [esp + 0x14]
test edi, edi
jle case.0x46efff.22
mov esi, dword [esp + 0x2c]
cmp dword [esi + 0x10], 0
jne 0x46ef0b
push 1
push edi
call fcn.00681a00
mov dword [esi + 0x10], eax
jmp 0x46f0d6
push edi
push dword [esp + 0x30]
push ebx
call fcn.0046fc90
jmp 0x46f0e9
push 1
push ebx
call fcn.0046da80
add esp, 8
test eax, eax
je 0x46ef0b
lea ebx, [esi - 1]
test bl, 1
jne 0x46ef0b
mov ecx, dword [ebp]
xor edx, edx
mov eax, dword [ebp + 4]
shld eax, ecx, 2
shl ecx, 2
cmp edx, eax
jb 0x46ef0b
ja 0x46f166
cmp ebx, ecx
jb 0x46ef0b
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], edx
jne 0x46ef0b
push ebx
call fcn.006883b5
mov ecx, dword [esp + 0x14]
mov ebp, eax
add esp, 4
mov dword [ecx + 0x88], ebp
test ebp, ebp
je 0x46ef0b
mov edi, ebx
test ebx, ebx
je 0x46f1da
nop dword [eax]
cmp edi, 0x10000
mov eax, 0x10000
mov esi, edi
cmova esi, eax
push esi
push dword [esp + 0x2c]
call fcn.0046da80
add esp, 8
test eax, eax
je 0x46ef0b
push esi
push eax
push ebp
call fcn.0067d850
add esp, 0xc
add ebp, esi
sub edi, esi
jne 0x46f1a0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
lea ebp, [ecx + 0x78]
xor esi, esi
cmp dword [ebp + 4], esi
jb 0x46f07f
ja 0x46f1f9
cmp dword [ebp], esi
jbe 0x46f07f
mov edx, dword [esp + 0x18]
add edx, 4
mov dword [edx], eax
cmp ebx, 2
jb 0x46ef0b
nop dword [eax + eax]
cmp byte [eax], 0
jne 0x46f21b
cmp byte [eax + 1], 0
je 0x46f231
sub ebx, 2
add eax, 2
cmp ebx, 2
jae 0x46f210
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x14
ret
mov ecx, eax
sub ebx, 2
sub ecx, dword [edx]
add eax, 2
mov dword [edx - 4], ecx
inc esi
xor ecx, ecx
add edx, 0x48
cmp ecx, dword [ebp + 4]
jb 0x46f200
ja 0x46f07f
cmp esi, dword [ebp]
jb 0x46f200
jmp 0x46f07f
push 2
push ebx
call fcn.0046da80
add esp, 8
test eax, eax
je 0x46ef0b
mov esi, dword [esp + 0x2c]
mov al, byte [eax]
mov byte [esp + 0x30], al
cmp dword [esi + 0x14], 0
jne 0x46ef0b
push 1
push dword [ebp]
call fcn.00681a00
add esp, 8
mov dword [esi + 0x14], eax
test eax, eax
je 0x46ef0b
cmp byte [esp + 0x30], 0
push dword [ebp]
je 0x46f2af
push 1
push eax
call fcn.0067ddd0
add esp, 0xc
jmp 0x46f2c1
push eax
push ebx
call fcn.0046e550
add esp, 0xc
test eax, eax
js 0x46ef0b
xor esi, esi
cmp dword [ebp + 4], esi
jb 0x46f083
ja 0x46f2d7
cmp dword [ebp], esi
jbe 0x46f083
mov edi, dword [esp + 0x18]
add edi, 0x40
nop
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x14]
cmp byte [esi + eax], 0
je 0x46f320
push 4
push ebx
call fcn.0046da80
add esp, 8
test eax, eax
je 0x46ef0b
movzx edx, byte [eax + 3]
movzx ecx, byte [eax + 2]
shl edx, 8
or edx, ecx
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
shl edx, 8
or edx, ecx
shl edx, 8
or edx, eax
mov dword [edi], edx
xor eax, eax
inc esi
add edi, 0x48
cmp eax, dword [ebp + 4]
jb 0x46f2e0
ja 0x46f083
cmp esi, dword [ebp]
jb 0x46f2e0
jmp 0x46f083
test esi, esi
je 0x46f083
jmp case.0x46efff.22
mov esi, dword [esp + 0x10]
xor ebp, ebp
xor ecx, ecx
mov dword [esp + 0x30], ebp
xor edi, edi
mov dword [esp + 0x1c], ecx
mov eax, dword [esi + 0x28]
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x28], eax
cmp dword [esi + 0x7c], eax
jb 0x46f567
ja 0x46f37b
cmp dword [esi + 0x78], eax
jbe 0x46f567
mov edx, dword [esp + 0x18]
add edx, 0x3c
mov eax, dword [esp + 0x2c]
mov ebx, ebp
mov eax, dword [eax + 8]
test eax, eax
je 0x46f395
cmp byte [eax + ecx], 0
jne 0x46f399
or dword [edx - 0x2c], 0x10
mov ecx, dword [edx + 4]
mov esi, ecx
shr esi, 0x10
mov dword [edx], esi
test ecx, 0x8000
jne 0x46f3e1
mov eax, ecx
and eax, 1
test cl, 0x10
je 0x46f3c5
xor eax, 1
shl eax, 7
lea esi, [eax + 0x416d]
mov dword [edx], esi
jmp 0x46f3e1
test eax, eax
je 0x46f3d6
mov dword [edx], 0x8124
mov esi, 0x8124
jmp 0x46f3e1
mov dword [edx], 0x81a4
mov esi, 0x81a4
mov ecx, dword [edx - 0x2c]
test cl, 0x10
je 0x46f415
mov eax, dword [esp + 0x10]
cmp ebp, dword [eax + 0x38]
jae 0x46ef0b
test esi, esi
jne 0x46f400
mov dword [edx], 0x81b6
mov eax, dword [eax + 0x40]
cmp byte [eax + ebp], 0
je 0x46f40f
or ecx, 8
mov dword [edx - 0x2c], ecx
inc ebp
jmp 0x46f4aa
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x46f425
lea eax, [ecx + 1]
jmp 0x46f436
mov ebx, dword [esp + 0x30]
xor eax, eax
cmp byte [ecx + ebx], al
sete al
inc ebx
mov dword [esp + 0x30], ebx
test esi, esi
jne 0x46f44b
test eax, eax
mov ecx, 0x41ff
mov eax, 0x81b6
cmove ecx, eax
jmp 0x46f46b
mov ecx, esi
test eax, eax
je 0x46f46d
mov eax, esi
and eax, 0xf000
cmp eax, 0x4000
je 0x46f46d
and ecx, 0xffff4fff
or ecx, 0x4000
mov dword [edx], ecx
and ecx, 0xf000
cmp ecx, 0x4000
jne 0x46f4a7
mov ecx, dword [edx - 0x3c]
cmp ecx, 2
jb 0x46f4a7
mov eax, dword [edx - 0x38]
cmp byte [eax + ecx - 2], 0x2f
jne 0x46f494
cmp byte [eax + ecx - 1], 0
je 0x46f4a7
mov byte [eax + ecx], 0x2f
mov eax, dword [edx - 0x3c]
mov ecx, dword [edx - 0x38]
mov byte [ecx + eax + 1], 0
add dword [edx - 0x3c], 2
or ebx, 0xffffffff
mov dword [edx - 0x30], ebx
test byte [edx + 4], 1
je 0x46f4b9
and dword [edx], 0xffffff6d
mov eax, dword [edx - 0x2c]
mov ecx, dword [esp + 0x28]
and eax, 0x10
test ecx, ecx
jne 0x46f515
test eax, eax
jne 0x46f4d4
mov dword [edx - 0x34], 0xffffffff
jmp 0x46f541
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add ecx, 0x50
mov esi, dword [eax + 0x20]
mov ebx, dword [eax + 0x24]
imul eax, edi, 0x68
add ecx, eax
nop word [eax + eax]
xor eax, eax
cmp eax, ebx
ja 0x46ef0b
jb 0x46f504
cmp edi, esi
jae 0x46ef0b
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x46f511
inc edi
add ecx, 0x68
jmp 0x46f4f0
mov ecx, dword [esp + 0x28]
test byte [edx - 0x2c], 0x10
mov dword [edx - 0x34], edi
je 0x46f541
mov esi, dword [esp + 0x14]
inc ecx
imul eax, edi, 0x68
xor ebx, ebx
mov dword [esp + 0x28], ecx
cmp ebx, dword [eax + esi + 0x54]
jb 0x46f541
ja 0x46f53a
cmp ecx, dword [eax + esi + 0x50]
jb 0x46f541
inc edi
xor eax, eax
mov dword [esp + 0x28], eax
mov esi, dword [esp + 0x10]
xor eax, eax
mov ecx, dword [esp + 0x1c]
add edx, 0x48
inc ecx
mov dword [esp + 0x1c], ecx
cmp eax, dword [esi + 0x7c]
jb 0x46f382
ja 0x46f567
cmp ecx, dword [esi + 0x78]
jb 0x46f382
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret