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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x20]
cmp eax, dword [ecx + 8]
jbe 0x471c08
sub esp, 0xa0
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 4]
cmp ecx, 0x20
sbb edx, edx
mov ebx, 1
shl ebx, cl
and ebx, edx
mov dword [esp + 0x64], ebx
mov edx, dword [eax + 8]
mov dword [esp + 0x60], edx
lea ebp, [ebx + edx - 2]
mov dword [esp + 0x20], ebp
mov esi, dword [eax]
mov dword [esp + 0x5c], esi
mov edi, dword [esp + 0xb8]
add edi, esi
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x70]
jmp 0x471629
shl eax, 1
mov ecx, dword [esp + 0x54]
mov edx, ecx
shr ecx, 0x1f
or ecx, eax
shl edx, 1
mov eax, dword [esp + 0x50]
lea edi, [eax - 1]
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0xac]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x58], ecx
mov ecx, edx
mov edx, dword [esp + 0x60]
test ecx, ecx
setne bl
mov eax, dword [esp + 0x58]
test eax, eax
xchg ebp, ebx
setne bl
xchg ebp, ebx
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4716bf
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], edi
lea ebx, [esi + 2]
cmp ebx, 0x20
sbb ebp, ebp
lea edx, [esi - 0x1e]
mov dword [esp + 0x4c], edx
neg edx
cmp edx, 0x20
sbb esi, esi
mov edi, dword [esp + 0x4c]
cmp edi, 0x20
sbb edi, edi
mov ecx, ebx
shr eax, cl
test ebp, eax
sete al
mov byte [esp + 0x1b], al
mov ecx, edx
mov eax, dword [esp + 0x58]
mov edx, eax
shl eax, cl
mov ecx, ebx
mov ebx, dword [esp + 0x54]
shr ebx, cl
and eax, esi
and ebx, ebp
or ebx, eax
mov ecx, dword [esp + 0x4c]
mov eax, edx
shr edx, cl
and edi, edx
or edi, ebx
test edi, edi
sete dl
movzx ebx, byte [esp + 0x1b]
and edx, ebx
test dl, dl
jne 0x4715f6
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x50]
movzx ebx, byte [esp + 0xbd]
test bl, bl
je 0x4716f5
or ecx, 1
jmp 0x4716f5
mov ecx, dword [esp + 0x58]
mov ebp, ecx
shr ecx, 1
mov eax, ebx
shl ebx, 0x1f
or ecx, ebx
shr eax, 1
and ebp, 1
or ecx, ebp
mov ebx, dword [esp + 0x50]
lea edi, [ebx + 1]
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x50], edi
lea ebx, [esi + 3]
cmp ebx, 0x20
sbb ebp, ebp
lea edx, [esi - 0x1d]
mov dword [esp + 0x54], edx
neg edx
cmp edx, 0x20
sbb esi, esi
mov edi, dword [esp + 0x54]
cmp edi, 0x20
sbb edi, edi
mov dword [esp + 0x4c], edi
mov ecx, edx
mov edx, eax
shl eax, cl
mov ecx, ebx
mov edi, dword [esp + 0x58]
shr edi, cl
and eax, esi
and edi, ebp
or edi, eax
mov ecx, dword [esp + 0x54]
mov eax, edx
shr edx, cl
mov esi, dword [esp + 0x4c]
and esi, edx
or esi, edi
test esi, esi
setne dl
mov ecx, ebx
mov ebx, eax
shr eax, cl
test ebp, eax
setne al
or eax, edx
test al, al
jne 0x4716d0
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
jmp 0x471781
mov eax, ecx
shr ecx, 1
mov ebp, ebx
shl ebx, 0x1f
or ecx, ebx
shr ebp, 1
and eax, 1
or ecx, eax
inc edi
mov ebx, ebp
test ebx, ebx
seta al
cmp ecx, 1
xchg ebp, ebx
seta bl
xchg ebp, ebx
test ebx, ebx
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, ebp
or esi, eax
xchg esi, eax
test al, al
xchg esi, eax
je 0x4717aa
lea eax, [edx - 1]
cmp edi, eax
jl 0x47176c
mov eax, ecx
and ecx, 3
shr eax, 2
mov ebp, ebx
shl ebx, 0x1e
or ebx, eax
mov eax, ebx
and ebx, 1
or ebx, ecx
cmp ebx, 3
sete bl
shr ebp, 2
lea esi, [edi + 2]
and ebx, 1
test bl, bl
je 0x471857
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], edi
add eax, 1
adc ebp, 0
mov ebx, dword [esp + 0x5c]
lea ecx, [ebx - 0x1f]
mov dword [esp + 0x58], ecx
cmp ecx, 0x20
sbb edx, edx
neg ecx
cmp ecx, 0x20
sbb esi, esi
mov edi, 1
shr edi, cl
and edi, esi
mov ecx, dword [esp + 0x58]
mov esi, 1
shl esi, cl
and esi, edx
or esi, edi
cmp esi, ebp
sete dl
lea ecx, [ebx + 1]
cmp ecx, 0x20
sbb esi, esi
mov edi, 1
shl edi, cl
and esi, edi
cmp eax, esi
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, edx
xchg esi, eax
test al, al
xchg esi, eax
je 0x47184f
shr eax, 1
mov edx, ebp
shl ebp, 0x1f
or eax, ebp
shr edx, 1
mov edi, dword [esp + 0x50]
lea esi, [edi + 3]
jmp 0x47185d
mov edx, ebp
mov esi, dword [esp + 0x48]
jmp 0x47185d
mov ebx, dword [esp + 0x5c]
mov edx, ebp
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], esi
cmp ebx, 0x20
sbb ebp, ebp
mov dword [esp + 0x4c], ebp
lea edi, [ebx - 0x20]
mov dword [esp + 0x44], edi
cmp edi, 0x20
sbb esi, esi
mov dword [esp + 0x40], esi
xchg edi, ebx
neg ebx
xchg edi, ebx
cmp edi, 0x20
sbb esi, esi
mov ecx, ebx
shr edx, cl
test ebp, edx
sete dl
mov byte [esp + 0x1b], dl
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x54]
shr edx, cl
mov ecx, ebx
shr eax, cl
and eax, ebp
mov ecx, edi
mov ebp, dword [esp + 0x54]
shl ebp, cl
and ebp, esi
or ebp, eax
mov eax, dword [esp + 0x40]
and edx, eax
or edx, ebp
test edx, edx
sete dl
movzx ebp, byte [esp + 0x1b]
and edx, ebp
test dl, dl
je 0x4718d4
mov edx, dword [esp + 0x60]
jmp 0x4718d8
mov edx, dword [esp + 0x50]
mov ebp, dword [esp + 0x20]
cmp edx, ebp
jg 0x4718f3
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
mov ecx, edx
xor edx, edx
xor eax, eax
jmp 0x471a11
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], esi
nop
lea eax, [esp + 0x78]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 8], eax
call fcn.0044edf0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044ec30
mov eax, dword [esp + 0xc]
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
lea edx, [0x69fce0]
mov dword [esp], edx
call fcn.0040bd00
mov eax, dword [esp + 4]
mov dword [eax + 4], 0xa
lea ecx, [0x6c10ba]
mov dword [eax], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x58]
mov edx, 1
shr edx, cl
mov ecx, dword [esp + 0x44]
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x5c]
mov ebp, 1
shl ebp, cl
mov ecx, dword [esp + 0x54]
and edx, ecx
mov ecx, dword [esp + 0x40]
and ebx, ecx
or ebx, edx
mov ecx, dword [esp + 0x4c]
and ebp, ecx
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
lea ecx, [edx + ecx - 1]
mov edx, dword [0x8d9190]
test edx, edx
jne 0x4719cc
mov edx, dword [esp + 0x98]
mov dword [eax + 8], edx
jmp 0x4719df
lea edi, [eax + 8]
mov edx, eax
mov eax, dword [esp + 0x98]
call fcn.004643a0
mov eax, edx
mov edx, dword [0x8b2a94]
mov esi, dword [0x8b2a90]
mov dword [eax + 0x10], esi
mov esi, dword [0x8d9190]
test esi, esi
jne 0x4719fd
mov dword [eax + 0x14], edx
jmp 0x471a0b
lea edi, [eax + 0x14]
mov esi, eax
mov eax, edx
call fcn.004643a0
mov eax, esi
lea edx, [0x7274d8]
mov dword [esp + 0x58], ebp
mov dword [esp + 0x54], ebx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x9c], eax
mov esi, dword [esp + 0xac]
mov edi, dword [esi]
mov dword [esp + 0x5c], edi
lea eax, [edi - 0x20]
mov dword [esp + 0x4c], eax
cmp eax, 0x20
sbb edx, edx
mov dword [esp + 0x44], edx
neg eax
mov dword [esp + 0x40], eax
cmp eax, 0x20
sbb ebp, ebp
mov dword [esp + 0x3c], ebp
cmp edi, 0x20
sbb ebx, ebx
mov dword [esp + 0x38], ebx
mov ecx, edi
mov esi, 1
shl esi, cl
and esi, ebx
mov dword [esp + 0x34], esi
mov ecx, dword [esp + 0x4c]
mov ebx, 1
shl ebx, cl
mov ecx, eax
mov edi, 1
shr edi, cl
and edi, ebp
and ebx, edx
or ebx, edi
mov dword [esp + 0x30], ebx
add esi, 0xffffffff
adc ebx, 0xffffffff
mov edi, dword [esp + 0xac]
mov edx, dword [edi + 4]
mov dword [esp + 0x2c], edx
cmp edx, 0x20
sbb ebp, ebp
mov eax, dword [esp + 0x54]
and ebx, eax
mov eax, dword [esp + 0x58]
and esi, eax
mov eax, dword [esp + 0x64]
sub eax, dword [edi + 8]
mov ecx, edx
mov edi, 1
shl edi, cl
and edi, ebp
lea ebp, [edi - 1]
and ebp, eax
mov dword [esp + 0x64], ebp
mov eax, ebp
sar ebp, 0x1f
mov ecx, dword [esp + 0x5c]
shl ebp, cl
mov edi, ecx
mov ecx, dword [esp + 0x40]
shr eax, cl
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x64]
shl edx, cl
mov ecx, esi
mov esi, dword [esp + 0x38]
and ebp, esi
mov esi, dword [esp + 0x3c]
and eax, esi
or eax, ebp
mov ebp, dword [esp + 0x44]
and edx, ebp
or edx, eax
or ebx, edx
mov eax, ecx
mov ecx, edi
mov edx, dword [esp + 0x64]
shl edx, cl
mov ebp, dword [esp + 0x38]
and edx, ebp
or eax, edx
movzx edx, byte [esp + 0xbc]
test dl, dl
je 0x471b89
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x20
sbb edx, edx
mov dword [esp + 0x58], edx
lea ebp, [ecx - 0x20]
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb edi, edi
mov dword [esp + 0x54], edi
cmp esi, 0x20
sbb edi, edi
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x30]
shl edi, cl
mov ecx, esi
mov edx, dword [esp + 0x34]
mov esi, edx
shl edx, cl
mov ecx, ebp
mov ebp, esi
shr esi, cl
mov ecx, ebp
mov ebp, dword [esp + 0x58]
and edi, ebp
mov ebp, dword [esp + 0x54]
and esi, ebp
or esi, edi
mov ebp, dword [esp + 0x4c]
and ebp, edx
or ebp, esi
or ebx, ebp
mov edx, ecx
mov ecx, dword [esp + 0x2c]
shl edx, cl
mov ebp, dword [esp + 0x58]
and edx, ebp
or eax, edx
mov ecx, dword [esp + 0xac]
lea edx, [0x87d3f0]
cmp ecx, edx
jne 0x471bd1
mov dword [esp + 0x28], eax
movss xmm0, dword [esp + 0x28]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0xc0], xmm0
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xcc], eax
add esp, 0xa0
ret
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ebx
movsd xmm0, qword [esp + 0x68]
movsd qword [esp + 0xc0], xmm0
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xcc], eax
add esp, 0xa0
ret
call fcn.00462f90
jmp fcn.00471580