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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x46ed79
sub esp, 0x6c
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 4]
cmp ecx, 0x20
sbb edx, edx
mov ebx, 1
shl ebx, cl
and edx, ebx
mov dword [esp + 0x54], edx
mov ebx, dword [eax + 8]
mov dword [esp + 0x50], ebx
lea ebp, [edx + ebx - 2]
mov dword [esp + 0xc], ebp
mov esi, dword [eax]
mov dword [esp + 0x4c], esi
mov edi, dword [esp + 0x84]
add edi, esi
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x60]
jmp 0x46e7f9
shl eax, 1
mov ecx, dword [esp + 0x44]
mov edx, ecx
shr ecx, 0x1f
or ecx, eax
shl edx, 1
mov eax, dword [esp + 0x40]
lea edi, [eax - 1]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0xc]
mov dword [esp + 0x48], ecx
mov ecx, edx
mov edx, dword [esp + 0x54]
mov edx, dword [esp + 0x48]
test edx, edx
setne al
test ecx, ecx
xchg ebp, ebx
setne bl
xchg ebp, ebx
or eax, ebp
test al, al
je 0x46e884
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], edi
lea eax, [esi + 2]
cmp eax, 0x20
sbb ebp, ebp
lea ebx, [esi - 0x1e]
mov dword [esp + 0x3c], ebx
neg ebx
cmp ebx, 0x20
sbb esi, esi
mov edi, dword [esp + 0x3c]
cmp edi, 0x20
sbb edi, edi
mov ecx, ebx
mov ebx, edx
shl edx, cl
and edx, esi
mov ecx, eax
mov esi, dword [esp + 0x44]
shr esi, cl
and esi, ebp
or esi, edx
mov ecx, dword [esp + 0x3c]
mov edx, ebx
shr ebx, cl
and ebx, edi
or ebx, esi
test ebx, ebx
sete bl
mov ecx, eax
mov eax, edx
shr edx, cl
test ebp, edx
sete dl
and edx, ebx
test dl, dl
jne 0x46e7c9
mov ecx, dword [esp + 0x44]
mov edx, eax
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x40]
movzx eax, byte [esp + 0x89]
test al, al
je 0x46e8bc
or ecx, 1
jmp 0x46e8bc
mov ecx, esi
shr ecx, 1
mov edx, dword [esp + 0x44]
mov eax, edx
shl edx, 0x1f
or ecx, edx
shr eax, 1
and esi, 1
or ecx, esi
mov ebp, dword [esp + 0x40]
lea edi, [ebp + 1]
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
mov edx, eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], edi
lea eax, [esi + 3]
cmp eax, 0x20
sbb ebp, ebp
lea ebx, [esi - 0x1d]
mov dword [esp + 0x3c], ebx
cmp ebx, 0x20
sbb esi, esi
neg ebx
cmp ebx, 0x20
sbb edi, edi
mov ecx, eax
shr edx, cl
test ebp, edx
setne dl
mov byte [esp + 0xb], dl
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
shr edx, cl
and edx, esi
mov ecx, eax
mov eax, dword [esp + 0x48]
mov esi, eax
shr eax, cl
mov ecx, ebx
mov ebx, dword [esp + 0x44]
shl ebx, cl
and ebx, edi
and eax, ebp
or eax, ebx
or eax, edx
test eax, eax
setne al
movzx edx, byte [esp + 0xb]
or eax, edx
test al, al
jne 0x46e895
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
jmp 0x46e94b
mov ebx, esi
shr esi, 1
mov edx, ecx
shl ecx, 0x1f
or esi, ecx
shr edx, 1
and ebx, 1
or esi, ebx
inc edi
cmp esi, 1
seta bl
test edx, edx
xchg ebp, ebx
sete bl
xchg ebp, ebx
mov ecx, edx
seta dl
and ebp, ebx
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x46e970
lea edx, [eax - 1]
cmp edi, edx
jl 0x46e938
mov edx, esi
and esi, 3
shr edx, 2
mov ebx, ecx
shl ecx, 0x1e
or ecx, edx
mov edx, ecx
and ecx, 1
or esi, ecx
cmp esi, 3
xchg ebp, ebx
sete bl
xchg ebp, ebx
shr ebx, 2
lea esi, [edi + 2]
and ebp, 1
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x46ea2d
mov dword [esp + 0x38], esi
mov dword [esp + 0x40], edi
add edx, 1
mov dword [esp + 0x48], edx
adc ebx, 0
mov ebp, dword [esp + 0x4c]
lea ecx, [ebp - 0x1f]
mov dword [esp + 0x44], ecx
cmp ecx, 0x20
sbb eax, eax
neg ecx
mov dword [esp + 0x3c], ecx
cmp ecx, 0x20
sbb esi, esi
mov ecx, dword [esp + 0x44]
mov edi, 1
shl edi, cl
mov ecx, dword [esp + 0x3c]
mov edx, 1
shr edx, cl
and edx, esi
and edi, eax
or edi, edx
cmp edi, ebx
sete al
lea ecx, [ebp + 1]
cmp ecx, 0x20
sbb edx, edx
mov esi, 1
shl esi, cl
and edx, esi
mov esi, dword [esp + 0x48]
cmp esi, edx
sete dl
and edx, eax
test dl, dl
je 0x46ea25
shr esi, 1
mov edx, ebx
shl edx, 0x1f
or edx, esi
shr ebx, 1
mov eax, dword [esp + 0x40]
lea esi, [eax + 3]
jmp 0x46ea31
mov edx, esi
mov esi, dword [esp + 0x38]
jmp 0x46ea31
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], esi
cmp ebp, 0x20
sbb eax, eax
mov dword [esp + 0x3c], eax
lea edi, [ebp - 0x20]
mov dword [esp + 0x34], edi
mov ecx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
cmp edi, 0x20
sbb esi, esi
mov dword [esp + 0x30], esi
cmp ecx, 0x20
sbb esi, esi
mov ecx, ebp
shr ebx, cl
test eax, ebx
sete bl
mov byte [esp + 0xb], bl
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x44]
shr ebx, cl
mov dword [esp + 0x2c], ebx
mov ecx, edi
mov ebx, dword [esp + 0x44]
shl ebx, cl
mov ecx, ebp
shr edx, cl
and edx, eax
mov eax, dword [esp + 0x30]
and ebx, eax
or ebx, edx
mov edx, dword [esp + 0x2c]
and edx, esi
or edx, ebx
test edx, edx
sete dl
movzx ebx, byte [esp + 0xb]
and edx, ebx
test dl, dl
je 0x46eab2
mov edx, dword [esp + 0x50]
jmp 0x46eab6
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0xc]
cmp edx, ebx
jg 0x46ead1
mov ebx, dword [esp + 0x48]
mov ecx, edx
xor ebp, ebp
xor eax, eax
mov edx, dword [esp + 0x44]
jmp 0x46eb97
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], esi
lea eax, [0x500ea0]
mov dword [esp], eax
call fcn.0040b030
mov eax, dword [esp + 4]
mov dword [eax + 4], 0xa
lea ecx, [0x50df1f]
mov dword [eax], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x34]
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x48]
mov ebx, 1
shr ebx, cl
mov ecx, dword [esp + 0x30]
and ebx, ecx
mov ecx, dword [esp + 0x44]
and edx, ecx
or edx, ebx
mov ecx, dword [esp + 0x4c]
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x3c]
and ebx, ecx
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x54]
lea ecx, [ebp + ecx - 1]
mov ebp, dword [0x609a90]
test ebp, ebp
jne 0x46eb55
mov ebp, dword [esp + 0x70]
mov dword [eax + 8], ebp
jmp 0x46eb65
lea edi, [eax + 8]
mov ebp, eax
mov eax, dword [esp + 0x70]
call fcn.0045dbb0
mov eax, ebp
mov ebp, dword [0x5e3994]
mov esi, dword [0x5e3990]
mov dword [eax + 0x10], esi
mov esi, dword [0x609a90]
test esi, esi
jne 0x46eb83
mov dword [eax + 0x14], ebp
jmp 0x46eb91
lea edi, [eax + 0x14]
mov esi, eax
mov eax, ebp
call fcn.0045dbb0
mov eax, esi
lea ebp, [0x53a2b4]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x68], eax
mov esi, dword [esp + 0x78]
mov edi, dword [esi]
mov dword [esp + 0x4c], edi
cmp edi, 0x20
sbb eax, eax
mov dword [esp + 0x3c], eax
mov ecx, edi
mov ebp, 1
shl ebp, cl
and ebp, eax
mov dword [esp + 0x34], ebp
add ebp, 0xffffffff
mov dword [esp + 0x30], ebp
lea eax, [ecx - 0x20]
mov dword [esp + 0x2c], eax
neg eax
cmp eax, 0x20
sbb edi, edi
mov dword [esp + 0x28], edi
mov ebx, dword [esp + 0x2c]
cmp ebx, 0x20
sbb ebp, ebp
mov dword [esp + 0x24], ebp
mov ecx, ebx
mov edx, 1
shl edx, cl
mov ecx, eax
mov ebx, 1
shr ebx, cl
and ebx, edi
and edx, ebp
or edx, ebx
mov dword [esp + 0x20], edx
mov ebx, dword [esp + 0x34]
add ebx, 0xffffffff
adc edx, 0xffffffff
mov ebx, dword [esi + 4]
mov dword [esp + 0x1c], ebx
cmp ebx, 0x20
sbb ebp, ebp
mov edi, dword [esp + 0x44]
and edx, edi
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x48]
and edi, edx
mov edx, dword [esp + 0x54]
sub edx, dword [esi + 8]
mov ecx, ebx
mov esi, 1
shl esi, cl
and esi, ebp
lea ebp, [esi - 1]
and ebp, edx
mov edx, ebp
sar ebp, 0x1f
mov ecx, dword [esp + 0x2c]
mov esi, edx
shl edx, cl
mov ecx, dword [esp + 0x4c]
shl ebp, cl
mov ebx, dword [esp + 0x3c]
and ebp, ebx
mov ecx, eax
mov eax, esi
shr esi, cl
mov ecx, edi
mov edi, dword [esp + 0x28]
and esi, edi
or esi, ebp
mov ebp, dword [esp + 0x24]
and edx, ebp
or edx, esi
mov ebp, dword [esp + 0x14]
or ebp, edx
mov edx, ecx
mov ecx, dword [esp + 0x4c]
shl eax, cl
and eax, ebx
or edx, eax
movzx eax, byte [esp + 0x88]
test al, al
je 0x46ed09
mov eax, dword [esp + 0x1c]
cmp eax, 0x20
sbb ebx, ebx
lea ecx, [eax - 0x20]
mov esi, ecx
neg ecx
mov dword [esp + 0x48], ecx
cmp ecx, 0x20
sbb edi, edi
mov dword [esp + 0x44], edi
cmp esi, 0x20
sbb edi, edi
mov dword [esp + 0x3c], edi
mov ecx, esi
mov edi, dword [esp + 0x34]
mov esi, edi
shl edi, cl
mov dword [esp + 0x30], edi
mov ecx, eax
mov edi, dword [esp + 0x20]
shl edi, cl
mov ecx, dword [esp + 0x48]
shr esi, cl
and edi, ebx
mov ecx, ebx
mov ebx, dword [esp + 0x44]
and esi, ebx
or esi, edi
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
and ebx, edi
or ebx, esi
or ebp, ebx
mov ebx, ecx
mov ecx, eax
mov esi, dword [esp + 0x34]
shl esi, cl
and esi, ebx
or edx, esi
mov eax, dword [esp + 0x78]
lea ecx, [0x5cb2f8]
cmp eax, ecx
jne 0x46ed48
mov dword [esp + 0x18], edx
movss xmm0, dword [esp + 0x18]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x8c], xmm0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x98], eax
add esp, 0x6c
ret
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ebp
movsd xmm0, qword [esp + 0x58]
movsd qword [esp + 0x8c], xmm0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x98], eax
add esp, 0x6c
ret
call fcn.0045c7a0
jmp fcn.0046e760