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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x471f84
sub esp, 0x64
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 4]
cmp ecx, 0x20
sbb edx, edx
mov ebx, 1
shl ebx, cl
and ebx, edx
mov dword [esp + 0x54], ebx
mov edx, dword [eax + 8]
mov dword [esp + 0x50], edx
lea ebp, [ebx + edx - 2]
mov dword [esp + 0xc], ebp
mov esi, dword [eax]
mov dword [esp + 0x4c], esi
mov edi, dword [esp + 0x7c]
add edi, esi
mov ecx, dword [esp + 0x74]
jmp 0x4719c1
shl edx, 1
mov ecx, eax
shr eax, 0x1f
or eax, edx
shl ecx, 1
mov edx, dword [esp + 0x7c]
lea edi, [edx - 1]
mov edx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x7c], edi
mov ebx, dword [esp + 0x78]
test ebx, ebx
setne al
test ecx, ecx
xchg ebp, ebx
setne bl
xchg ebp, ebx
or eax, ebp
test al, al
je 0x471f7b
mov dword [esp + 0x48], ecx
lea eax, [esi + 2]
cmp eax, 0x20
sbb ebp, ebp
lea edx, [esi - 0x1e]
mov dword [esp + 0x44], edx
cmp edx, 0x20
sbb esi, esi
neg edx
cmp edx, 0x20
sbb edi, edi
mov ecx, eax
shr ebx, cl
test ebp, ebx
sete bl
mov byte [esp + 0xb], bl
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x78]
shr ebx, cl
mov dword [esp + 0x44], ebx
mov ecx, eax
mov ebx, dword [esp + 0x48]
mov eax, ebx
shr ebx, cl
and ebx, ebp
mov ecx, edx
mov ebp, dword [esp + 0x78]
mov edx, ebp
shl ebp, cl
and ebp, edi
or ebp, ebx
mov ebx, dword [esp + 0x44]
and ebx, esi
or ebx, ebp
test ebx, ebx
sete bl
movzx ebp, byte [esp + 0xb]
and ebx, ebp
test bl, bl
jne 0x471993
movzx ebx, byte [esp + 0x81]
test bl, bl
je 0x471a60
or eax, 1
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x7c]
jmp 0x471a8d
mov eax, dword [esp + 0x74]
mov esi, eax
shr eax, 1
mov edx, edi
shl edi, 0x1f
or eax, edi
shr edx, 1
and esi, 1
or eax, esi
mov esi, dword [esp + 0x7c]
lea ebp, [esi + 1]
mov esi, dword [esp + 0x4c]
mov ebx, esi
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], ebp
lea ecx, [ebx + 3]
cmp ecx, 0x20
sbb esi, esi
lea edi, [ebx - 0x1d]
mov dword [esp + 0x48], edi
cmp edi, 0x20
sbb ebx, ebx
xchg edi, ebx
neg ebx
xchg edi, ebx
cmp edi, 0x20
sbb ebp, ebp
shr edx, cl
test esi, edx
setne dl
mov byte [esp + 0xb], dl
shr eax, cl
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x78]
shr edx, cl
mov ecx, edi
mov eax, dword [esp + 0x78]
mov edi, eax
shl eax, cl
and edx, ebx
and eax, ebp
mov ebx, dword [esp + 0x44]
and ebx, esi
or ebx, eax
or ebx, edx
test ebx, ebx
setne al
movzx edx, byte [esp + 0xb]
or eax, edx
test al, al
jne 0x471a6a
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x74]
jmp 0x471b20
mov ebp, ebx
shr ebx, 1
mov edi, ecx
shl ecx, 0x1f
or ebx, ecx
shr edi, 1
and ebp, 1
or ebx, ebp
inc edx
cmp ebx, 1
xchg ebp, ebx
seta bl
xchg ebp, ebx
test edi, edi
xchg esi, ebx
sete bl
xchg esi, ebx
mov ecx, edi
xchg edi, ebx
seta bl
xchg edi, ebx
and esi, ebp
or esi, edi
xchg esi, eax
test al, al
xchg esi, eax
je 0x471b4d
lea ebp, [eax - 1]
cmp ebp, edx
jg 0x471b0d
mov ebp, ebx
and ebx, 3
shr ebp, 2
mov esi, ecx
shl ecx, 0x1e
or ecx, ebp
mov ebp, ecx
and ecx, 1
or ebx, ecx
cmp ebx, 3
sete bl
shr esi, 2
lea edi, [edx + 2]
and ebx, 1
test bl, bl
je 0x471f6c
mov dword [esp + 0x40], edi
mov dword [esp + 0x7c], edx
add ebp, 1
mov dword [esp + 0x74], ebp
adc esi, 0
mov ebx, dword [esp + 0x4c]
lea ecx, [ebx - 0x1f]
mov dword [esp + 0x48], ecx
neg ecx
mov dword [esp + 0x44], ecx
cmp ecx, 0x20
sbb eax, eax
mov edi, dword [esp + 0x48]
cmp edi, 0x20
sbb edx, edx
mov ecx, edi
mov ebp, 1
shl ebp, cl
mov ecx, dword [esp + 0x44]
mov edi, 1
shr edi, cl
and edi, eax
and edx, ebp
or edx, edi
cmp edx, esi
sete al
lea ecx, [ebx + 1]
cmp ecx, 0x20
sbb edx, edx
mov ebp, 1
shl ebp, cl
and ebp, edx
mov edx, dword [esp + 0x74]
cmp edx, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, eax
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x471f5d
shr edx, 1
mov eax, esi
shl esi, 0x1f
or esi, edx
shr eax, 1
mov edx, dword [esp + 0x7c]
add edx, 3
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
cmp ebx, 0x20
sbb ebp, ebp
lea edi, [ebx - 0x20]
mov dword [esp + 0x48], edi
cmp edi, 0x20
sbb edx, edx
mov dword [esp + 0x44], edx
xchg edi, ebx
neg ebx
xchg edi, ebx
mov dword [esp + 0x3c], edi
cmp edi, 0x20
sbb edx, edx
mov ecx, ebx
shr eax, cl
test ebp, eax
sete al
mov byte [esp + 0xb], al
mov ecx, edi
mov eax, dword [esp + 0x78]
shl eax, cl
mov ecx, ebx
shr esi, cl
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x78]
shr edi, cl
and esi, ebp
and eax, edx
or eax, esi
mov esi, dword [esp + 0x44]
and edi, esi
or edi, eax
test edi, edi
sete al
movzx edi, byte [esp + 0xb]
and eax, edi
test al, al
je 0x471f54
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0xc]
cmp edi, eax
jl 0x471e81
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x70]
mov edi, dword [esi]
mov dword [esp + 0x4c], edi
cmp edi, 0x20
sbb ebp, ebp
mov dword [esp + 0x48], ebp
mov ecx, edi
mov ebx, 1
shl ebx, cl
and ebx, ebp
mov dword [esp + 0x44], ebx
add ebx, 0xffffffff
mov dword [esp + 0x3c], ebx
lea ebp, [ecx - 0x20]
mov dword [esp + 0x38], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb edi, edi
mov dword [esp + 0x34], edi
mov eax, dword [esp + 0x38]
cmp eax, 0x20
sbb ebx, ebx
mov dword [esp + 0x30], ebx
mov ecx, ebp
mov edx, 1
shr edx, cl
and edx, edi
mov ecx, eax
mov edi, 1
shl edi, cl
and edi, ebx
or edi, edx
mov dword [esp + 0x2c], edi
mov edx, dword [esp + 0x44]
add edx, 0xffffffff
adc edi, 0xffffffff
mov edx, dword [esi + 4]
mov dword [esp + 0x28], edx
cmp edx, 0x20
sbb ebx, ebx
mov eax, dword [esp + 0x78]
and edi, eax
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x74]
and eax, edi
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x7c]
sub edi, dword [esi + 8]
mov ecx, edx
mov esi, 1
shl esi, cl
and esi, ebx
lea ebx, [esi - 1]
and ebx, edi
mov esi, ebx
sar ebx, 0x1f
mov ecx, ebp
mov edi, esi
shr esi, cl
mov ecx, dword [esp + 0x38]
mov ebp, edi
shl edi, cl
mov ecx, dword [esp + 0x4c]
shl ebx, cl
mov edx, dword [esp + 0x48]
and ebx, edx
mov eax, dword [esp + 0x34]
and esi, eax
or esi, ebx
mov eax, dword [esp + 0x30]
and edi, eax
or edi, esi
mov eax, dword [esp + 0x18]
or eax, edi
shl ebp, cl
and ebp, edx
mov edx, dword [esp + 0x14]
or edx, ebp
movzx ebx, byte [esp + 0x80]
test bl, bl
je 0x471e7d
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
mov ebx, dword [esp + 0x28]
cmp ebx, 0x20
sbb ebp, ebp
lea ecx, [ebx - 0x20]
cmp ecx, 0x20
sbb esi, esi
mov edi, ecx
neg ecx
mov dword [esp + 0x48], ecx
cmp ecx, 0x20
sbb edx, edx
mov ecx, edi
mov eax, dword [esp + 0x44]
mov edi, eax
shl eax, cl
mov dword [esp + 0x3c], eax
mov ecx, ebx
mov eax, dword [esp + 0x2c]
shl eax, cl
mov ecx, dword [esp + 0x48]
shr edi, cl
and eax, ebp
and edi, edx
or edi, eax
mov eax, dword [esp + 0x3c]
and esi, eax
or esi, edi
mov eax, dword [esp + 0x24]
or eax, esi
mov ecx, ebx
mov edx, dword [esp + 0x44]
shl edx, cl
and edx, ebp
mov ebx, dword [esp + 0x20]
or ebx, edx
mov ecx, dword [esp + 0x70]
lea edx, [0x626240]
cmp ecx, edx
jne 0x471e4c
mov dword [esp + 0x1c], ebx
movss xmm0, dword [esp + 0x1c]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x84], xmm0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x90], eax
add esp, 0x64
ret
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], eax
movsd xmm0, qword [esp + 0x58]
movsd qword [esp + 0x84], xmm0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x90], eax
add esp, 0x64
ret
mov ebx, edx
jmp 0x471e0d
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], ebp
lea eax, [0x52bce0]
mov dword [esp], eax
call fcn.0040b120
mov eax, dword [esp + 4]
mov dword [eax + 4], 0xa
lea ecx, [0x54358b]
mov dword [eax], ecx
mov ecx, dword [esp + 0x6c]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x4c]
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x48]
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x3c]
mov ebp, 1
shr ebp, cl
mov ecx, dword [esp + 0x38]
and ebp, ecx
mov ecx, dword [esp + 0x44]
and ebx, ecx
or ebx, ebp
mov ecx, dword [esp + 0x34]
and edx, ecx
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x54]
lea ecx, [ebp + ecx - 1]
mov ebp, dword [0x73c0c0]
test ebp, ebp
jne 0x471f42
mov ebp, dword [esp + 0x68]
mov dword [eax + 8], ebp
mov ebp, dword [0x72670c]
mov esi, dword [0x726708]
mov dword [eax + 0x10], esi
mov esi, dword [0x73c0c0]
test esi, esi
jne 0x471f32
mov dword [eax + 0x14], ebp
mov ebp, eax
mov eax, ecx
mov ecx, edx
mov edx, ebx
lea ebx, [0x5825b0]
jmp 0x471c97
lea edi, [eax + 0x14]
mov esi, eax
mov eax, ebp
call fcn.00459850
mov eax, esi
jmp 0x471f1f
lea edi, [eax + 8]
mov ebp, eax
mov eax, dword [esp + 0x68]
call fcn.00459850
mov eax, ebp
jmp 0x471f03
mov eax, dword [esp + 0x7c]
jmp 0x471c7f
mov eax, esi
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x74]
jmp 0x471c06
mov ebx, dword [esp + 0x4c]
mov eax, esi
mov esi, ebp
mov edx, edi
jmp 0x471c06
mov eax, ecx
mov edx, ebx
jmp 0x471a51
call fcn.00458300
jmp fcn.00471940