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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, ecx
push esi
push edi
cmp byte [ebx + 8], 0
je 0x46eccd
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x46ecc2
cmp byte [eax + 5], 0
jne 0x46ecb4
cmp byte [eax + 4], 0
je 0x46ecc2
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x46ece5
push dword [ebx + 0x38]
push dword [ebp + 8]
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov esi, dword [ebx + 0xc]
mov edx, dword [ebp + 8]
test esi, esi
jne 0x46ecf6
xor edi, edi
jmp 0x46f10a
cmp byte [esi + 0x38], 0
je 0x46ed15
mov byte [esi + 0x38], 0
test dl, dl
je 0x46ed0b
mov edi, dword [esi]
jmp 0x46f10a
mov edi, 1
jmp 0x46f10a
mov dword [esi], 0
lea eax, [esi + 0x14]
mov dword [esi + 4], 0
xorps xmm0, xmm0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [ebp - 8], eax
movups xmmword [eax], xmm0
movq qword [eax + 0x10], xmm0
mov dword [eax + 0x18], 0
test dl, dl
je 0x46ed64
push 1
push 0
push 0
push 0
push eax
call dword [0x55366c]
jmp 0x46ed71
push 0
push 0
push 0
push eax
call dword [0x55354c]
mov edi, eax
test edi, edi
je 0x46ed8b
mov eax, dword [esi + 0x18]
cmp eax, 0xcae
jne 0x46eda2
mov dword [esi], 0xfffffffa
mov byte [esi + 0x39], 1
cmp byte [ebp + 8], 0
je 0x46efb5
test edi, edi
jne 0x46efc6
jmp 0x46f10a
test eax, eax
je 0x46f10a
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x46ed8b
cmp eax, 0xcb1
jne 0x46ed8b
mov edx, dword [ecx + 0x3c]
mov eax, dword [esi + 0x1c]
mov dword [ebp - 4], eax
test edx, edx
je 0x46f10a
cmp eax, 1
jl 0x46f10a
cmp eax, dword [ecx + 0x40]
jg 0x46f10a
lea eax, [eax + eax*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x46f10a
mov edx, dword [esi + 0x20]
cmp edx, 0x205
jne 0x46ee31
mov eax, dword [ebp - 8]
mov edx, dword [eax]
mov eax, dword [ecx + 0x1c0]
test eax, eax
je 0x46f10a
mov dword [eax + 0x30], ecx
mov eax, dword [ecx + 0x1c0]
mov dword [eax], 0xffffffea
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 8], 0x205
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 4], edx
jmp 0x46ef8d
cmp edx, 0x203
jne 0x46ee76
mov eax, dword [ebp - 8]
mov edx, dword [eax]
mov eax, dword [ecx + 0x1c0]
test eax, eax
je 0x46f10a
mov dword [eax + 0x30], ecx
mov eax, dword [ecx + 0x1c0]
mov dword [eax], 0xfffffff2
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 8], 0x203
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 4], edx
jmp 0x46ef8d
cmp edx, 0x202
jne 0x46ee96
mov eax, dword [ebp - 8]
push 0
push 0
push dword [eax]
push edx
mov edx, dword [ebp - 4]
push edx
call fcn.00439a20
jmp 0x46f10a
cmp edx, 0x402
jne 0x46eedb
mov eax, dword [ebp - 8]
mov edx, dword [eax]
mov eax, dword [ecx + 0x1c0]
test eax, eax
je 0x46f10a
mov dword [eax + 0x30], ecx
mov eax, dword [ecx + 0x1c0]
mov dword [eax], 0xffffff35
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 8], 0x402
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 4], edx
jmp 0x46ef8d
cmp edx, 0x403
je 0x46ef5b
cmp edx, 0x404
je 0x46ef5b
mov eax, dword [esi + 0x14]
mov dword [ebp - 8], eax
mov eax, dword [ecx + 0x1c0]
cmp edx, 0x405
jne 0x46ef2d
test eax, eax
je 0x46f10a
mov dword [eax + 0x30], ecx
mov eax, dword [ecx + 0x1c0]
mov dword [eax], 0xffffff34
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [ecx + 0x1c0]
mov edx, dword [ebp - 8]
mov dword [eax + 4], edx
jmp 0x46ef8d
test eax, eax
je 0x46f10a
mov dword [eax + 0x30], ecx
mov eax, dword [ecx + 0x1c0]
mov dword [eax], 0xffffff36
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [ecx + 0x1c0]
mov edx, dword [ebp - 8]
mov dword [eax + 4], edx
jmp 0x46ef8d
mov eax, dword [ecx + 0x1c0]
mov esi, dword [esi + 0x14]
test eax, eax
je 0x46f10a
mov dword [eax + 0x30], ecx
mov eax, dword [ecx + 0x1c0]
mov dword [eax], 0xffffff33
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 4], esi
mov eax, dword [ecx + 0x1c0]
mov edx, dword [ebp - 4]
mov dword [eax + 0xc], edx
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 0x10], 0
mov eax, dword [ecx + 0x1c0]
mov byte [eax + 0x38], 1
jmp 0x46f10a
test edi, edi
jg 0x46efc6
mov dword [esi], 0xfffffed4
xor edi, edi
jmp 0x46f10a
cmp dword [esi + 0x18], 0x100
jne 0x46f08b
mov eax, dword [esi + 0x30]
mov dword [ebp - 4], eax
test eax, eax
je 0x46f08b
mov eax, 0xd
cmp ax, word [esi + 0x1c]
jne 0x46f08b
mov eax, dword [esi + 0x14]
xor ecx, ecx
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x46f000
xor edx, edx
jmp 0x46f062
push 0xfffffffffffffff4
push eax
call dword [0x553664]
mov edx, eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x46f05e
cmp edx, 1
jl 0x46f05e
cmp edx, dword [eax + 0x40]
jg 0x46f05e
lea eax, [edx + edx*8]
cmp dword [ecx + eax*8 + 0xc], 0
lea ecx, [ecx + eax*8]
je 0x46f05e
mov eax, dword [ebp - 0xc]
cmp dword [ecx + 4], eax
jne 0x46f05e
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x46f060
cmp edx, dword [eax + 0x40]
jg 0x46f060
lea eax, [edx + edx*8]
cmp dword [ecx + eax*8 + 0xc], 0
lea ecx, [ecx + eax*8]
je 0x46f060
mov ecx, dword [ecx]
cmp ecx, 0x23
je 0x46f06c
cmp ecx, 0x24
jne 0x46f062
jmp 0x46f06c
xor edx, edx
xor ecx, ecx
cmp ecx, 0x22
je 0x46f06c
cmp ecx, 0x25
jne 0x46f08b
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
push ecx
movzx eax, dx
push eax
push 0x111
push ecx
call dword [0x553570]
push eax
call dword [0x553580]
jmp 0x46f10a
mov ecx, dword [esi + 0x34]
test ecx, ecx
je 0x46f0db
lea eax, [esi + 0x14]
test eax, eax
jne 0x46f09d
xor cl, cl
jmp 0x46f0d7
mov edx, dword [ecx + 0x244]
add ecx, 0x230
mov dword [ebp - 0xc], ecx
test edx, edx
je 0x46f0c9
push eax
push edx
push dword [ecx]
call dword [0x5535f8]
test eax, eax
setne cl
test eax, eax
jne 0x46f0d7
mov ecx, dword [ebp - 0xc]
lea eax, [esi + 0x14]
push eax
push dword [ecx]
call dword [0x553694]
test eax, eax
setne cl
test cl, cl
jne 0x46f0ef
lea eax, [esi + 0x14]
push eax
call dword [0x5535f0]
lea eax, [esi + 0x14]
push eax
call dword [0x55365c]
mov edx, dword [ebp + 8]
mov byte [esi + 0x38], 0
cmp dl, 1
jne 0x46f0ff
mov edi, dword [esi]
jmp 0x46f10a
cmp dl, 2
mov eax, 1
cmove edi, eax
mov ecx, dword [ebx + 0xd0]
test ecx, ecx
je 0x46f16d
cmp dword [ecx + 0x10], 4
jne 0x46f16d
mov eax, dword [ebx + 0xc]
mov edx, dword [eax]
lea eax, [edx + 0x1a]
cmp eax, 0x1a
ja 0x46f168
cmp edx, 0xfffffffe
je 0x46f168
cmp edx, 0xfffffff9
je 0x46f168
cmp edx, 0xfffffff8
je 0x46f168
cmp edx, 0xfffffff6
je 0x46f168
cmp edx, 0xfffffff3
je 0x46f168
cmp edx, 0xfffffff2
je 0x46f168
cmp edx, 0xffffffee
je 0x46f168
cmp edx, 0xffffffed
je 0x46f168
cmp edx, 0xffffffec
je 0x46f168
cmp edx, 0xffffffe7
je 0x46f168
cmp edx, 0xfffffff5
je 0x46f168
cmp edx, 0xffffffea
je 0x46f168
cmp edx, 0xfffffffa
jne 0x46f16d
call fcn.0043b9f0
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x46f196
mov eax, dword [ebx + 0xc]
cmp dword [eax + 0x30], ecx
jne 0x46f196
mov ecx, dword [ebx + 0x18]
test ecx, ecx
jle 0x46f1d1
cmp dword [eax], ecx
jne 0x46f1d1
mov dword [eax], 0xfffffffa
mov eax, dword [ebx + 0x4c]
mov byte [eax + 5], 1
jmp 0x46f1d1
mov ecx, dword [ebx + 0xcc]
test ecx, ecx
je 0x46f1d1
mov edx, dword [ebx + 0xc]
lea eax, [ecx + 0x78]
cmp dword [edx + 0x30], eax
jne 0x46f1d1
mov esi, dword [ecx + 8]
mov eax, dword [ecx + 0xc]
test esi, esi
jle 0x46f1c2
cmp dword [edx], esi
jne 0x46f1c2
mov eax, dword [ebx + 0x4c]
mov byte [eax + 5], 1
jmp 0x46f1d1
test eax, eax
jle 0x46f1d1
cmp dword [edx], eax
jne 0x46f1d1
mov eax, dword [ebx + 0x4c]
mov byte [eax + 4], 1
mov eax, dword [ebx + 0x104]
test eax, eax
je 0x46f21f
cmp byte [eax], 0
je 0x46f21f
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
cmp eax, 0xffffffe1
jne 0x46f207
push 0
call dword [0x553038]
cmp byte [ebp + 8], 0
mov eax, 1
cmovne eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test eax, eax
jne 0x46f22d
cmp byte [ebp + 8], al
mov eax, 1
cmovne eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0xc]
cmp dword [eax], 0xffffffe1
jne 0x46f22d
mov dword [eax], 0xfffffffa
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4