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

Disassembly:
sub esp, 0x80
push ebx
mov ebx, dword [esp + 0x8c]
push ebp
push esi
mov esi, edx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x6c], esi
mov ebp, ecx
mov dword [esp + 0x88], ebp
push edi
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x34], edi
cmp esi, 0x10
ja 0x47073c
cmp esi, 8
jbe 0x4704ef
movq xmm0, qword [0x4be7e0]
movq qword [esp + 0x20], xmm0
movq xmm0, qword [0x4be7e8]
movq qword [esp + 0x18], xmm0
movq xmm0, qword [0x4be7f0]
mov edi, dword [esp + 0x18]
xor edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
xor ecx, dword [esp + 0x24]
sub edi, ebx
movq qword [esp + 0x50], xmm0
mov ebx, 0x85ebca87
sbb ecx, dword [esp + 0x34]
movq xmm0, qword [0x4be7f8]
movq qword [esp + 0x28], xmm0
movq xmm0, qword [ebp]
movq qword [esp + 0x80], xmm0
movq xmm0, qword [esi + ebp - 8]
movq qword [esp + 0x10], xmm0
xor edi, dword [esp + 0x10]
xor edi, dword [esp + 0x80]
xor ecx, dword [esp + 0x14]
mov eax, edi
xor ecx, dword [esp + 0x84]
mul ebx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x80], eax
mov esi, edx
mov eax, ecx
mul ebx
mov ecx, eax
mov ebx, edx
mov eax, edi
mov edx, 0x9e3779b1
mul edx
add eax, esi
mov edi, edx
mov esi, eax
mov edx, 0x85ebca77
mov eax, dword [esp + 0x28]
adc edi, 0
add esi, ecx
mov ecx, dword [esp + 0x2c]
adc edi, 0
xor eax, dword [esp + 0x50]
xor ecx, dword [esp + 0x54]
add eax, dword [esp + 0x4c]
adc ecx, dword [esp + 0x34]
xor eax, dword [esp + 0x10]
xor ecx, dword [esp + 0x14]
mul edx
mov dword [esp + 0x58], eax
mov ebp, edx
mov eax, dword [esp + 0x20]
mov edx, 0x9e3779b1
mul edx
add dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
adc ebp, edx
add eax, edi
adc ebp, 0
add eax, ebx
adc ebp, 0
add eax, 0
mov dword [esp + 0x58], eax
adc ebp, ecx
xor ecx, ecx
or ecx, dword [esp + 0x80]
mov dword [esp + 0x20], ebp
mov ebp, eax
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x20]
dec eax
shl eax, 0x16
add ecx, 0
bswap edi
adc esi, eax
xor edi, ecx
bswap ebp
xor ebp, esi
mov dword [esp + 0x70], ebp
mov eax, edi
mov dword [esp + 0x3c], ebp
mov ecx, 0x27d4eb4f
mul ecx
push 0x16566791
mov ebx, eax
mov esi, edx
mov eax, ebp
mul ecx
push 0x9e3779f9
mov ecx, eax
mov dword [esp + 0x20], edx
mov eax, edi
mov edx, 0xc2b2ae3d
mul edx
mov edi, eax
mov ebp, edx
add edi, esi
adc ebp, 0
add edi, ecx
mov ecx, edi
adc ebp, 0
xor edx, edx
xor eax, eax
shr ecx, 5
or edx, ebx
xor eax, edi
xor ecx, edx
push eax
push ecx
call fcn.0047dfd0
mov ecx, edx
xor esi, esi
xor ecx, eax
xor esi, edx
mov eax, dword [esp + 0x70]
mov dword [esp + 0x38], ecx
mov ecx, 0xc2b2ae3d
push ecx
mul ecx
push 0x27d4eb4f
push dword [esp + 0x28]
mov dword [esp + 0x48], esi
mov edi, edx
push dword [esp + 0x64]
mov esi, eax
call fcn.0047dfd0
add esi, eax
adc edi, edx
add esi, ebp
adc edi, 0
add esi, dword [esp + 0x18]
adc edi, 0
xor eax, eax
mov ecx, edi
shr ecx, 5
xor ecx, esi
xor eax, edi
push 0x16566791
push 0x9e3779f9
push eax
push ecx
call fcn.0047dfd0
mov ecx, edx
xor esi, esi
xor ecx, eax
xor esi, edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], esi
mov eax, dword [esp + 0x94]
movups xmm0, xmmword [esp + 0x38]
movups xmmword [eax], xmm0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
cmp esi, 4
jb 0x47061f
mov edx, dword [esi + ebp - 4]
mov ebp, ebx
movq xmm0, qword [0x4be7d0]
xor ebx, ebx
xor ebx, dword [esp + 0x4c]
movq qword [esp + 0x70], xmm0
movq xmm0, qword [0x4be7d8]
movq qword [esp + 0x10], xmm0
mov ecx, dword [esp + 0x10]
xor ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x14]
xor eax, dword [esp + 0x74]
bswap ebp
xor ebp, edi
add ebx, ecx
mov ecx, dword [esp + 0x8c]
adc ebp, eax
xor eax, eax
push 0x9fb21c65
push 0x1e98df25
add eax, dword [ecx]
lea ecx, [esi*4]
adc edx, 0
xor ebx, eax
xor ebp, edx
mov dword [esp + 0x78], ebx
xor edi, edi
mov dword [esp + 0x20], ebp
add ecx, 0x85ebca87
mov eax, ebx
adc edi, 0x9e3779b1
mul ecx
mov dword [esp + 0x28], edi
mov ebx, eax
mov esi, edx
mov eax, ebp
mul ecx
mov ecx, eax
mov ebp, edx
mov eax, dword [esp + 0x78]
mul edi
add eax, esi
mov edi, edx
adc edi, 0
add eax, ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x20]
adc edi, 0
mul dword [esp + 0x28]
xor ecx, ecx
or ecx, ebx
mov esi, edx
mov ebx, eax
mov dword [esp + 0x88], ecx
mov eax, dword [esp + 0x78]
add ebx, edi
mov edx, eax
adc esi, 0
add ebx, ebp
adc esi, 0
shld edx, ecx, 1
add ecx, ecx
add ebx, ecx
adc esi, edx
mov edx, ebx
mov dword [esp + 0x78], esi
shrd edx, esi, 3
xor edx, dword [esp + 0x88]
shr esi, 3
xor esi, eax
xor eax, eax
mov ecx, esi
xor eax, esi
shr ecx, 3
xor ecx, edx
push eax
push ecx
call fcn.0047dfd0
mov ecx, eax
mov esi, edx
shrd ecx, esi, 0x1c
xor ecx, eax
shr esi, 0x1c
mov dword [esp + 0x38], ecx
xor esi, edx
mov ecx, dword [esp + 0x70]
xor eax, eax
shr ecx, 5
xor ecx, ebx
mov dword [esp + 0x3c], esi
xor eax, dword [esp + 0x70]
jmp 0x4704b4
test esi, esi
je 0x4706a1
mov ecx, dword [0x4be7c4]
mov eax, esi
xor ecx, dword [0x4be7c0]
shr eax, 1
movzx edi, byte [eax + ebp]
movzx eax, byte [ebp]
shl edi, 8
or edi, eax
movzx eax, byte [esi + ebp - 1]
shl edi, 8
or edi, esi
mov esi, dword [0x4be7cc]
shl edi, 8
or edi, eax
xor eax, eax
add ecx, ebx
adc eax, dword [esp + 0x34]
xor ecx, edi
xor eax, 0
push eax
push ecx
call fcn.0046a200
xor esi, dword [0x4be7c8]
xor ecx, ecx
mov dword [esp + 0x40], eax
xor eax, eax
bswap edi
rol edi, 0xd
sub esi, ebx
mov dword [esp + 0x44], edx
sbb eax, dword [esp + 0x3c]
xor edi, esi
xor ecx, eax
push ecx
push edi
call fcn.0046a200
add esp, 0x10
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
jmp 0x4704d5
movq xmm0, qword [0x4be800]
movq qword [esp + 0x70], xmm0
movq xmm0, qword [0x4be808]
movq qword [esp + 0x10], xmm0
mov eax, dword [esp + 0x14]
xor eax, dword [esp + 0x74]
movq xmm0, qword [0x4be810]
xor eax, edi
mov ecx, dword [esp + 0x10]
xor ecx, dword [esp + 0x70]
movq qword [esp + 0x20], xmm0
xor ecx, ebx
movq xmm0, qword [0x4be818]
push eax
push ecx
movq qword [esp + 0x20], xmm0
call fcn.0046a200
mov ecx, dword [esp + 0x20]
xor ecx, dword [esp + 0x28]
mov dword [esp + 0x40], eax
xor ecx, ebx
mov eax, dword [esp + 0x24]
xor eax, dword [esp + 0x2c]
xor eax, edi
mov dword [esp + 0x44], edx
push eax
push ecx
call fcn.0046a200
mov dword [esp + 0x50], eax
add esp, 0x10
mov eax, dword [esp + 0x94]
mov dword [esp + 0x44], edx
movups xmm0, xmmword [esp + 0x38]
movups xmmword [eax], xmm0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
cmp esi, 0x80
ja 0x470ffd
push 0x9e3779b1
push 0x85ebca87
push 0
push esi
call fcn.0047dfd0
mov dword [esp + 0x7c], eax
xorps xmm0, xmm0
mov dword [esp + 0x58], edx
lea ecx, [esi + ebp]
movlpd qword [esp + 0x10], xmm0
mov dword [esp + 0x80], ecx
cmp esi, 0x20
jbe 0x470d32
cmp esi, 0x40
jbe 0x470b4a
cmp esi, 0x60
jbe 0x470962
movq xmm0, qword [ebp + 0x30]
movq qword [esp + 0x50], xmm0
movq xmm0, qword [ebp + 0x38]
movq qword [esp + 0x18], xmm0
movq xmm0, qword [0x4be828]
movq qword [esp + 0x10], xmm0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
sub ecx, ebx
movq xmm0, qword [0x4be820]
sbb eax, edi
movq qword [esp + 0x28], xmm0
xor eax, dword [esp + 0x1c]
xor ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
add edi, ebx
mov dword [esp + 0x20], eax
adc ebp, dword [esp + 0x34]
xor edi, dword [esp + 0x50]
xor ebp, dword [esp + 0x54]
mov eax, edi
mul ecx
mov dword [esp + 0x28], ebp
mov ebx, eax
mov esi, edx
mov eax, ebp
mul ecx
mov ecx, eax
mov ebp, edx
mov eax, edi
mul dword [esp + 0x20]
add eax, esi
mov edi, edx
adc edi, 0
add eax, ecx
adc edi, 0
xor esi, esi
or esi, ebx
mov ebx, eax
mov eax, dword [esp + 0x28]
mul dword [esp + 0x20]
add eax, edi
adc edx, 0
add eax, ebp
mov ebp, dword [esp + 0x80]
adc edx, 0
xor esi, eax
xor ebx, edx
add esi, dword [esp + 0x7c]
movq xmm0, qword [ebp - 0x40]
adc ebx, dword [esp + 0x58]
movq qword [esp + 0x18], xmm0
movq xmm0, qword [ebp - 0x38]
movq qword [esp + 0x10], xmm0
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x18]
movq xmm0, qword [ebp - 0x40]
mov eax, dword [esp + 0x14]
adc eax, dword [esp + 0x1c]
xor esi, ecx
movq qword [esp + 0x50], xmm0
xor ebx, eax
movq xmm0, qword [ebp - 0x38]
movq qword [esp + 0x18], xmm0
movq xmm0, qword [0x4be838]
movq qword [esp + 0x10], xmm0
mov ecx, dword [esp + 0x10]
sub ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x14]
sbb eax, dword [esp + 0x34]
movq xmm0, qword [0x4be830]
xor eax, dword [esp + 0x1c]
xor ecx, dword [esp + 0x18]
movq qword [esp + 0x28], xmm0
mov edi, dword [esp + 0x28]
add edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x20], eax
adc ebp, dword [esp + 0x34]
xor edi, dword [esp + 0x50]
xor ebp, dword [esp + 0x54]
mov eax, edi
mul ecx
mov dword [esp + 0x18], ebp
mov ebx, eax
mov esi, edx
mov eax, ebp
mul ecx
mov ecx, eax
mov ebp, edx
mov eax, edi
mul dword [esp + 0x20]
add eax, esi
mov edi, edx
adc edi, 0
add eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
adc edi, 0
mul dword [esp + 0x20]
xor ecx, ecx
or ecx, ebx
add eax, edi
mov edi, dword [esp + 0x34]
adc edx, 0
add eax, ebp
mov ebp, dword [esp + 0x8c]
adc edx, 0
movq xmm0, qword [ebp + 0x30]
movq qword [esp + 0x10], xmm0
movq xmm0, qword [ebp + 0x38]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
movq qword [esp + 0x18], xmm0
add ebx, dword [esp + 0x18]
adc esi, dword [esp + 0x1c]
xor ebx, ecx
xor esi, dword [esp + 0x28]
xor ebx, eax
xor esi, edx
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x18], esi
jmp 0x470972
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
movq xmm0, qword [ebp + 0x20]
movq qword [esp + 0x60], xmm0
movq xmm0, qword [ebp + 0x28]
movq qword [esp + 0x20], xmm0
movq xmm0, qword [0x4be808]
movq qword [esp + 0x10], xmm0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
sub ecx, ebx
movq xmm0, qword [0x4be800]
sbb eax, edi
movq qword [esp + 0x28], xmm0
xor eax, dword [esp + 0x24]
xor ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
add edi, ebx
mov dword [esp + 0x20], eax
adc ebp, dword [esp + 0x34]
xor edi, dword [esp + 0x60]
xor ebp, dword [esp + 0x64]
mov eax, edi
mul ecx
mov dword [esp + 0x10], ebp
mov ebx, eax
mov esi, edx
mov eax, ebp
mul ecx
mov ecx, eax
mov ebp, edx
mov eax, edi
mul dword [esp + 0x20]
add eax, esi
mov edi, edx
adc edi, 0
add eax, ecx
mov dword [esp + 0x28], eax
adc edi, 0
xor esi, esi
or esi, ebx
mov ebx, eax
mov eax, dword [esp + 0x10]
mul dword [esp + 0x20]
add eax, edi
adc edx, 0
add eax, ebp
mov ebp, dword [esp + 0x80]
adc edx, 0
xor esi, eax
xor ebx, edx
add esi, dword [esp + 0x7c]
adc ebx, dword [esp + 0x58]
movq xmm0, qword [ebp - 0x30]
movq qword [esp + 0x10], xmm0
movq xmm0, qword [ebp - 0x28]
movq qword [esp + 0x60], xmm0
mov ecx, dword [esp + 0x60]
add ecx, dword [esp + 0x10]
movq xmm0, qword [ebp - 0x30]
mov eax, dword [esp + 0x64]
adc eax, dword [esp + 0x14]
xor esi, ecx
movq qword [esp + 0x38], xmm0
xor ebx, eax
movq xmm0, qword [ebp - 0x28]
movq qword [esp + 0x10], xmm0
movq xmm0, qword [0x4be818]
movq qword [esp + 0x60], xmm0
mov ecx, dword [esp + 0x60]
sub ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x64]
sbb eax, dword [esp + 0x34]
movq xmm0, qword [0x4be810]
xor eax, dword [esp + 0x14]
xor ecx, dword [esp + 0x10]
movq qword [esp + 0x28], xmm0
mov edi, dword [esp + 0x28]
add edi, dword [esp + 0x4c]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x20], eax
mov ebp, dword [esp + 0x2c]
adc ebp, dword [esp + 0x34]
xor edi, dword [esp + 0x38]
xor ebp, dword [esp + 0x3c]
mov eax, edi
mul ecx
mov dword [esp + 0x10], ebp
mov ebx, eax
mov esi, edx
mov eax, ebp
mul ecx
mov ecx, eax
mov ebp, edx
mov eax, edi
mul dword [esp + 0x20]
add eax, esi
mov edi, edx
mov esi, eax
mov eax, dword [esp + 0x10]
adc edi, 0
add esi, ecx
adc edi, 0
xor ecx, ecx
mul dword [esp + 0x20]
or ecx, ebx
mov ebx, dword [esp + 0x4c]
add eax, edi
mov edi, dword [esp + 0x34]
adc edx, 0
add eax, ebp
mov ebp, dword [esp + 0x8c]
adc edx, 0
xor ecx, eax
xor esi, edx
add dword [esp + 0x50], ecx
movq xmm0, qword [ebp + 0x20]
adc esi, dword [esp + 0x18]
movq qword [esp + 0x38], xmm0
movq xmm0, qword [ebp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
movq qword [esp + 0x60], xmm0
add ecx, dword [esp + 0x60]
adc eax, dword [esp + 0x64]
xor dword [esp + 0x50], ecx
xor esi, eax
mov dword [esp + 0x28], esi
jmp 0x470b5a
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
movq xmm0, qword [ebp + 0x10]
movq qword [esp + 0x20], xmm0
movq xmm0, qword [ebp + 0x18]
movq qword [esp + 0x60], xmm0
movq xmm0, qword [0x4be7e8]
movq qword [esp + 0x38], xmm0
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
sub ecx, ebx
movq xmm0, qword [0x4be7e0]
sbb eax, edi
movq qword [esp + 0x10], xmm0
xor eax, dword [esp + 0x64]
xor ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
add edi, ebx
mov dword [esp + 0x18], eax
adc ebp, dword [esp + 0x34]
xor edi, dword [esp + 0x20]
xor ebp, dword [esp + 0x24]
mov eax, edi
mul ecx
mov dword [esp + 0x20], ebp
mov ebx, eax
mov esi, edx
mov eax, ebp
mul ecx
mov ecx, eax
mov ebp, edx
mov eax, edi
mul dword [esp + 0x18]
add eax, esi
mov edi, edx
adc edi, 0
add eax, ecx
mov dword [esp + 0x10], eax
adc edi, 0
xor esi, esi
or esi, ebx
mov ebx, eax
mov eax, dword [esp + 0x20]
mul dword [esp + 0x18]
add eax, edi
adc edx, 0
add eax, ebp
mov ebp, dword [esp + 0x80]
adc edx, 0
xor esi, eax
xor ebx, edx
add esi, dword [esp + 0x7c]
adc ebx, dword [esp + 0x58]
movq xmm0, qword [ebp - 0x20]
movq qword [esp + 0x60], xmm0
movq xmm0, qword [ebp - 0x18]
movq qword [esp + 0x38], xmm0
mov ecx, dword [esp + 0x38]
add ecx, dword [esp + 0x60]
movq xmm0, qword [ebp - 0x20]
mov eax, dword [esp + 0x3c]
adc eax, dword [esp + 0x64]
xor esi, ecx
movq qword [esp + 0x20], xmm0
xor ebx, eax
movq xmm0, qword [ebp - 0x18]
movq qword [esp + 0x60], xmm0
movq xmm0, qword [0x4be7f8]
movq qword [esp + 0x38], xmm0
mov ecx, dword [esp + 0x38]
sub ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x3c]
sbb eax, dword [esp + 0x34]
movq xmm0, qword [0x4be7f0]
xor eax, dword [esp + 0x64]
xor ecx, dword [esp + 0x60]
movq qword [esp + 0x10], xmm0
mov edi, dword [esp + 0x10]
add edi, dword [esp + 0x4c]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x18], eax
mov ebp, dword [esp + 0x14]
adc ebp, dword [esp + 0x34]
xor edi, dword [esp + 0x20]
xor ebp, dword [esp + 0x24]
mov eax, edi
mul ecx
mov dword [esp + 0x10], ebp
mov ebx, eax
mov esi, edx
mov eax, ebp
mul ecx
mov ecx, eax
mov ebp, edx
mov eax, edi
mul dword [esp + 0x18]
add eax, esi
mov edi, edx
mov esi, eax
mov eax, dword [esp + 0x10]
adc edi, 0
add esi, ecx
adc edi, 0
xor ecx, ecx
mul dword [esp + 0x18]
or ecx, ebx
mov ebx, dword [esp + 0x4c]
add eax, edi
mov edi, dword [esp + 0x34]
adc edx, 0
add eax, ebp
mov ebp, dword [esp + 0x8c]
adc edx, 0
xor ecx, eax
xor esi, edx
add dword [esp + 0x50], ecx
movq xmm0, qword [ebp + 0x10]
adc esi, dword [esp + 0x28]
movq qword [esp + 0x38], xmm0
movq xmm0, qword [ebp + 0x18]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
movq qword [esp + 0x60], xmm0
add ecx, dword [esp + 0x60]
adc eax, dword [esp + 0x64]
xor dword [esp + 0x50], ecx
xor esi, eax
mov dword [esp + 0x20], esi
jmp 0x470d42
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
movq xmm0, qword [ebp]
movq qword [esp + 0x28], xmm0
movq xmm0, qword [ebp + 8]
movq qword [esp + 0x60], xmm0
movq xmm0, qword [0x4be7c8]
movq qword [esp + 0x38], xmm0
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
sub ecx, ebx
movq xmm0, qword [0x4be7c0]
sbb eax, edi
movq qword [esp + 0x10], xmm0
xor eax, dword [esp + 0x64]
xor ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
add edi, ebx
mov dword [esp + 0x18], eax
adc ebp, dword [esp + 0x34]
xor edi, dword [esp + 0x28]
xor ebp, dword [esp + 0x2c]
mov eax, edi
mul ecx
mov dword [esp + 0x10], ebp
mov ebx, eax
mov esi, edx
mov eax, ebp
mul ecx
mov ecx, eax
mov ebp, edx
mov eax, edi
mul dword [esp + 0x18]
add eax, esi
mov edi, edx
adc edi, 0
add eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
adc edi, 0
mul dword [esp + 0x18]
xor esi, esi
or esi, ebx
mov ebx, dword [esp + 0x28]
add eax, edi
adc edx, 0
add eax, ebp
mov ebp, dword [esp + 0x80]
adc edx, 0
xor esi, eax
xor ebx, edx
add esi, dword [esp + 0x7c]
adc ebx, dword [esp + 0x58]
movq xmm0, qword [ebp - 0x10]
movq qword [esp + 0x38], xmm0
movq xmm0, qword [ebp - 8]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
movq qword [esp + 0x60], xmm0
add ecx, dword [esp + 0x60]
movq xmm0, qword [ebp - 0x10]
adc eax, dword [esp + 0x64]
xor esi, ecx
movq qword [esp + 0x58], xmm0
xor ebx, eax
movq xmm0, qword [ebp - 8]
movq qword [esp + 0x60], xmm0
movq xmm0, qword [0x4be7d8]
movq qword [esp + 0x38], xmm0
mov ecx, dword [esp + 0x38]
sub ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x3c]
sbb eax, dword [esp + 0x34]
movq xmm0, qword [0x4be7d0]
xor eax, dword [esp + 0x64]
xor ecx, dword [esp + 0x60]
movq qword [esp + 0x10], xmm0
mov edi, dword [esp + 0x10]
add edi, dword [esp + 0x4c]
mov dword [esp + 0x80], esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x18], eax
mov ebp, dword [esp + 0x14]
adc ebp, dword [esp + 0x34]
xor edi, dword [esp + 0x58]
xor ebp, dword [esp + 0x5c]
mov eax, edi
mul ecx
mov dword [esp + 0x10], ebp
mov ebx, eax
mov esi, edx
mov eax, ebp
mul ecx
push 0x16566791
mov ecx, eax
mov ebp, edx
mov eax, edi
mul dword [esp + 0x1c]
push 0x9e3779f9
add eax, esi
mov edi, edx
adc edi, 0
add eax, ecx
mov ecx, dword [esp + 0x94]
adc edi, 0
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x18]
xor esi, esi
mul dword [esp + 0x20]
movq xmm0, qword [ecx]
movq qword [esp + 0x40], xmm0
movq xmm0, qword [ecx + 8]
movq qword [esp + 0x68], xmm0
mov ecx, dword [esp + 0x40]
or esi, ebx
add eax, edi
adc edx, 0
add eax, ebp
mov ebp, dword [esp + 0x60]
adc edx, 0
xor esi, eax
mov eax, dword [esp + 0x44]
xor ebp, edx
add esi, dword [esp + 0x58]
adc ebp, dword [esp + 0x28]
add ecx, dword [esp + 0x68]
adc eax, dword [esp + 0x6c]
xor esi, ecx
mov ecx, dword [esp + 0x30]
xor ebp, eax
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x88]
mov ebx, dword [esp + 0x18]
add esi, ebx
adc ecx, ebp
xor eax, eax
mov edx, ecx
xor eax, ecx
shr edx, 5
xor edx, esi
push eax
push edx
call fcn.0047dfd0
mov ecx, edx
xor esi, esi
xor ecx, eax
xor esi, edx
mov eax, dword [esp + 0x70]
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x38], ecx
mov ecx, 0
sbb ecx, dword [esp + 0x34]
push 0xc2b2ae3d
push 0x27d4eb4f
push ecx
push eax
mov dword [esp + 0x4c], esi
call fcn.0047dfd0
push 0x85ebca77
push 0xc2b2ae63
mov esi, eax
mov edi, edx
push ebp
push ebx
call fcn.0047dfd0
push 0x9e3779b1
push 0x85ebca87
push dword [esp + 0x30]
add esi, eax
push dword [esp + 0x8c]
adc edi, edx
call fcn.0047dfd0
add esi, eax
push 0x16566791
adc edi, edx
xor eax, eax
mov ecx, edi
xor eax, edi
push 0x9e3779f9
shr ecx, 5
xor ecx, esi
push eax
push ecx
call fcn.0047dfd0
xor esi, esi
mov ecx, edx
xor ecx, eax
xor esi, edx
mov eax, dword [esp + 0x94]
neg ecx
mov dword [esp + 0x40], ecx
adc esi, 0
neg esi
mov dword [esp + 0x44], esi
movups xmm0, xmmword [esp + 0x38]
movups xmmword [eax], xmm0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
cmp esi, 0xf0
ja 0x471032
push edi
push ebx
push ecx
lea eax, [esp + 0x44]
push 0x4be7c0
push eax
call fcn.0046af90
add esp, 0x14
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x94]
movups xmmword [eax], xmm0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
push 0xc0
push 0x4be7c0
push edi
push ebx
push esi
lea eax, [esp + 0x74]
push ebp
push eax
call fcn.0046e8e0
add esp, 0x1c
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x94]
pop edi
pop esi
pop ebp
movups xmmword [eax], xmm0
pop ebx
add esp, 0x80
ret