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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x46be26
sub esp, 0x5c
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 4]
cmp ecx, 0x20
sbb edx, edx
mov ebx, 1
shl ebx, cl
and ebx, edx
mov dword [esp + 0x4c], ebx
mov edx, dword [eax + 8]
mov dword [esp + 0x48], edx
lea ebp, [ebx + edx - 2]
mov dword [esp + 0xc], ebp
mov esi, dword [eax]
mov dword [esp + 0x44], esi
mov edi, dword [esp + 0x74]
add edi, esi
mov ecx, dword [esp + 0x6c]
jmp 0x46b893
shl esi, 1
mov ecx, dword [esp + 0x6c]
mov eax, ecx
shr ecx, 0x1f
or ecx, esi
shl eax, 1
mov edx, dword [esp + 0x74]
lea edi, [edx - 1]
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0xc]
mov dword [esp + 0x70], ecx
mov ecx, eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x74], edi
test ecx, ecx
setne bl
mov eax, dword [esp + 0x70]
test eax, eax
xchg ebp, ebx
setne bl
xchg ebp, ebx
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x46be1f
lea ebx, [esi + 2]
cmp ebx, 0x20
sbb ebp, ebp
lea edx, [esi - 0x1e]
mov dword [esp + 0x40], edx
cmp edx, 0x20
sbb esi, esi
neg edx
cmp edx, 0x20
sbb edi, edi
mov ecx, edx
mov edx, eax
shl eax, cl
and eax, edi
mov ecx, ebx
mov edi, dword [esp + 0x6c]
shr edi, cl
and edi, ebp
or edi, eax
mov ecx, dword [esp + 0x40]
mov eax, edx
shr edx, cl
and edx, esi
or edx, edi
test edx, edx
sete dl
mov ecx, ebx
mov esi, eax
shr eax, cl
test ebp, eax
sete al
and eax, edx
test al, al
jne 0x46b863
movzx eax, byte [esp + 0x79]
test al, al
je 0x46be16
mov ecx, dword [esp + 0x6c]
or ecx, 1
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x74]
jmp 0x46b94d
mov ecx, dword [esp + 0x6c]
mov edx, ecx
shr ecx, 1
mov esi, ebp
shl ebp, 0x1f
or ecx, ebp
shr esi, 1
and edx, 1
or ecx, edx
mov edx, dword [esp + 0x74]
lea edi, [edx + 1]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], edi
lea edx, [eax + 3]
cmp edx, 0x20
sbb ebx, ebx
lea ebp, [eax - 0x1d]
mov dword [esp + 0x40], ebp
cmp ebp, 0x20
sbb eax, eax
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb edi, edi
mov ecx, edx
shr esi, cl
test ebx, esi
xchg esi, ebx
setne bl
xchg esi, ebx
xchg esi, eax
mov byte [esp + 0xb], al
xchg esi, eax
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x70]
shr esi, cl
and esi, eax
mov ecx, edx
mov eax, dword [esp + 0x6c]
shr eax, cl
mov ecx, ebp
mov edx, dword [esp + 0x70]
mov ebp, edx
shl edx, cl
and edx, edi
and eax, ebx
or eax, edx
or eax, esi
test eax, eax
setne al
movzx edx, byte [esp + 0xb]
or eax, edx
test al, al
jne 0x46b92c
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x74]
mov ecx, dword [esp + 0x6c]
jmp 0x46b9e8
mov edx, ecx
shr ecx, 1
mov ebx, ebp
shl ebp, 0x1f
or ecx, ebp
shr ebx, 1
and edx, 1
or ecx, edx
inc edi
mov ebp, ebx
cmp ecx, 1
seta dl
test ebp, ebp
sete bl
xchg esi, ebx
seta bl
xchg esi, ebx
and ebx, edx
or ebx, esi
test bl, bl
je 0x46ba09
lea edx, [eax - 1]
cmp edx, edi
jg 0x46b9d3
mov edx, ecx
and ecx, 3
shr edx, 2
mov ebx, ebp
shl ebp, 0x1e
or ebp, edx
mov edx, ebp
and ebp, 1
or ecx, ebp
cmp ecx, 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 0x46be0b
mov dword [esp + 0x3c], esi
mov dword [esp + 0x74], edi
add edx, 1
mov dword [esp + 0x6c], edx
adc ebx, 0
mov ebp, dword [esp + 0x44]
lea ecx, [ebp - 0x1f]
mov dword [esp + 0x40], ecx
cmp ecx, 0x20
sbb eax, eax
neg ecx
cmp ecx, 0x20
sbb esi, esi
mov edi, 1
shr edi, cl
mov ecx, dword [esp + 0x40]
mov edx, 1
shl edx, cl
and edi, esi
and edx, eax
or edx, edi
cmp ebx, edx
sete al
lea ecx, [ebp + 1]
cmp ecx, 0x20
sbb edx, edx
mov esi, 1
shl esi, cl
and esi, edx
mov edx, dword [esp + 0x6c]
cmp edx, esi
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, eax
xchg esi, eax
test al, al
xchg esi, eax
je 0x46be00
shr edx, 1
mov eax, ebx
shl ebx, 0x1f
or edx, ebx
shr eax, 1
mov edi, dword [esp + 0x74]
lea esi, [edi + 3]
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0x74], esi
cmp ebp, 0x20
sbb ebx, ebx
mov dword [esp + 0x40], ebx
lea edi, [ebp - 0x20]
mov dword [esp + 0x38], edi
mov ecx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
cmp edi, 0x20
sbb esi, esi
mov dword [esp + 0x34], esi
cmp ecx, 0x20
sbb esi, esi
mov ecx, ebp
shr eax, cl
test ebx, eax
sete al
mov byte [esp + 0xb], al
mov ecx, edi
mov eax, dword [esp + 0x70]
shl eax, cl
mov ecx, ebp
shr edx, cl
and edx, ebx
mov ebx, dword [esp + 0x34]
and eax, ebx
or eax, edx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x70]
shr edx, cl
and edx, esi
or edx, eax
test edx, edx
sete al
movzx edx, byte [esp + 0xb]
and eax, edx
test al, al
je 0x46bdf7
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0xc]
cmp edx, eax
jl 0x46bd26
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x58], ebp
mov esi, dword [esp + 0x68]
mov edi, dword [esi]
mov dword [esp + 0x44], edi
cmp edi, 0x20
sbb ebp, ebp
mov dword [esp + 0x40], ebp
mov ecx, edi
mov ebx, 1
shl ebx, cl
and ebx, ebp
mov dword [esp + 0x38], ebx
add ebx, 0xffffffff
mov dword [esp + 0x34], ebx
lea ebp, [ecx - 0x20]
mov dword [esp + 0x30], ebp
cmp ebp, 0x20
sbb edi, edi
mov dword [esp + 0x2c], edi
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb eax, eax
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x30]
mov ebx, 1
shl ebx, cl
mov ecx, ebp
mov edx, 1
shr edx, cl
and edx, eax
and ebx, edi
or ebx, edx
mov dword [esp + 0x24], ebx
mov edx, dword [esp + 0x38]
add edx, 0xffffffff
adc ebx, 0xffffffff
mov edx, dword [esi + 4]
mov dword [esp + 0x20], edx
cmp edx, 0x20
sbb edi, edi
mov eax, dword [esp + 0x70]
and ebx, eax
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x6c]
and eax, ebx
mov dword [esp + 0x14], eax
mov ebx, dword [esp + 0x74]
sub ebx, dword [esi + 8]
mov ecx, edx
mov esi, 1
shl esi, cl
and esi, edi
dec esi
and esi, ebx
mov ebx, esi
sar esi, 0x1f
mov ecx, dword [esp + 0x30]
mov edi, ebx
shl ebx, cl
mov ecx, ebp
mov ebp, edi
shr edi, cl
mov ecx, dword [esp + 0x44]
shl esi, cl
mov edx, dword [esp + 0x40]
and esi, edx
mov eax, dword [esp + 0x28]
and edi, eax
or edi, esi
mov eax, dword [esp + 0x2c]
and ebx, eax
or ebx, edi
mov eax, dword [esp + 0x18]
or eax, ebx
shl ebp, cl
and ebp, edx
mov edx, dword [esp + 0x14]
or edx, ebp
movzx ebx, byte [esp + 0x78]
test bl, bl
je 0x46bcbc
mov ecx, dword [esp + 0x20]
cmp ecx, 0x20
sbb ebx, ebx
lea ebp, [ecx - 0x20]
cmp ebp, 0x20
sbb esi, esi
mov dword [esp + 0x40], esi
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov dword [esp + 0x34], ebp
cmp ebp, 0x20
sbb esi, esi
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x24]
shl esi, cl
mov ecx, edi
mov ebp, dword [esp + 0x38]
mov edi, ebp
shl ebp, cl
and esi, ebx
mov ecx, dword [esp + 0x34]
shr edi, cl
mov ecx, ebx
mov ebx, dword [esp + 0x30]
and edi, ebx
or edi, esi
mov ebx, dword [esp + 0x40]
and ebp, ebx
or ebp, edi
or eax, ebp
mov ebx, ecx
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x38]
shl ebp, cl
and ebp, ebx
or edx, ebp
mov ecx, dword [esp + 0x68]
lea ebx, [0x720270]
cmp ecx, ebx
jne 0x46bcf8
mov dword [esp + 0x1c], edx
movss xmm0, dword [esp + 0x1c]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x7c], xmm0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x88], eax
add esp, 0x5c
ret
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
movsd xmm0, qword [esp + 0x50]
movsd qword [esp + 0x7c], xmm0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x88], eax
add esp, 0x5c
ret
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], esi
lea eax, [0x5d1120]
mov dword [esp], eax
call fcn.0040b8e0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0xa
lea ecx, [0x5ecc1f]
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x38]
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x30]
mov ebx, 1
shr ebx, cl
mov ecx, dword [esp + 0x34]
and ebx, ecx
mov ecx, dword [esp + 0x2c]
and edx, ecx
or edx, ebx
mov ecx, dword [esp + 0x44]
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x40]
and ebx, ecx
mov ecx, dword [esp + 0x48]
mov ebp, dword [esp + 0x4c]
lea ecx, [ebp + ecx - 1]
mov ebp, dword [0x770e60]
test ebp, ebp
jne 0x46bde5
mov ebp, dword [esp + 0x60]
mov dword [eax + 8], ebp
mov ebp, dword [0x752efc]
mov esi, dword [0x752ef8]
mov dword [eax + 0x10], esi
mov esi, dword [0x770e60]
test esi, esi
jne 0x46bdd5
mov dword [eax + 0x14], ebp
mov ebp, eax
mov eax, ecx
mov ecx, ebx
lea ebx, [0x63a198]
jmp 0x46bb51
lea edi, [eax + 0x14]
mov esi, eax
mov eax, ebp
call fcn.0045df70
mov eax, esi
jmp 0x46bdc4
lea edi, [eax + 8]
mov ebp, eax
mov eax, dword [esp + 0x60]
call fcn.0045df70
mov eax, ebp
jmp 0x46bda8
mov eax, dword [esp + 0x74]
jmp 0x46bb39
mov eax, ebx
mov esi, dword [esp + 0x3c]
jmp 0x46babe
mov ebp, dword [esp + 0x44]
mov eax, ebx
jmp 0x46babe
mov ecx, dword [esp + 0x6c]
jmp 0x46b922
mov esi, eax
jmp 0x46b90e
call fcn.0045ca10
jmp fcn.0046b810