Function at 0x6355e0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x3c
mov ebp, edx
mov esi, ecx
mov ecx, edx
call fcn.0065c140
imul eax, eax, 0x100011b
imul ebx, edx, 0x1000193
xor ebx, eax
mov dword [esp + 0x28], esi
mov esi, dword [esi + 4]
test esi, esi
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
je 0x635657
mov eax, esi
shr eax, 1
and eax, 0x55555555
mov ecx, esi
sub ecx, eax
mov eax, ecx
and eax, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, eax
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
mov dword [esp + 0x24], eax
cmp eax, 1
ja 0x635664
lea edx, [esi - 1]
and edx, ebx
jmp 0x635676
mov dword [esp + 0xc], 0
jmp 0x6356f0
mov edx, ebx
cmp ebx, esi
jb 0x635676
mov eax, ebx
xor edx, edx
div dword [esp + 4]
mov esi, dword [esp + 4]
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [esp + 0xc], edx
mov ebx, dword [eax + edx*4]
test ebx, ebx
je 0x6356ec
lea eax, [esi - 1]
mov dword [esp + 0x10], eax
nop
mov ecx, ebx
mov ecx, dword [ebx]
test ecx, ecx
je 0x6356ec
mov eax, dword [ecx + 4]
mov ebx, dword [esp + 8]
cmp eax, ebx
je 0x6356c6
cmp dword [esp + 0x24], 1
ja 0x6356b0
and eax, dword [esp + 0x10]
jmp 0x6356c0
mov edx, dword [esp + 4]
cmp eax, edx
jb 0x6356c0
mov esi, edx
xor edx, edx
div esi
mov eax, edx
cmp eax, dword [esp + 0xc]
jne 0x6356f0
mov ebx, ecx
add ecx, 8
call fcn.0065c140
mov edi, eax
mov esi, edx
mov ecx, ebp
call fcn.0065c140
cmp edi, eax
jne 0x635690
cmp esi, edx
jne 0x635690
xor eax, eax
mov esi, ebx
jmp 0x635b46
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x28]
lea eax, [edi + 8]
mov dword [esp + 0x20], eax
mov dword [esp], 0xc
call fcn.0051c3d0
mov esi, eax
mov eax, dword [ebp]
mov dword [esi + 8], eax
mov dword [esi + 4], ebx
mov dword [esi], 0
mov eax, dword [edi + 0xc]
inc eax
movq xmm2, qword [0x8d0050]
movd xmm0, eax
por xmm0, xmm2
subsd xmm0, xmm2
cvtsd2ss xmm0, xmm0
movss xmm1, dword [edi + 0x10]
mov ebx, dword [esp + 4]
test ebx, ebx
je 0x635766
movd xmm3, ebx
por xmm3, xmm2
subsd xmm3, xmm2
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm3
mulss xmm2, xmm1
ucomiss xmm0, xmm2
ja 0x635766
mov edx, dword [esp + 0xc]
jmp 0x635afe
mov dword [esp + 0x2c], esi
lea esi, [ebx + ebx]
cmp ebx, 3
jb 0x63577c
lea eax, [ebx - 1]
test ebx, eax
sete al
jmp 0x63577e
xor eax, eax
xor al, 1
movzx eax, al
or esi, eax
divss xmm0, xmm1
movss dword [esp], xmm0
call fcn.0052a3a0
fstp dword [esp + 0x38]
movss xmm0, dword [esp + 0x38]
cvttss2si ecx, xmm0
mov edx, ecx
sar edx, 0x1f
subss xmm0, dword [0x8d0058]
cvttss2si eax, xmm0
and eax, edx
or eax, ecx
cmp esi, eax
cmova eax, esi
mov ebx, 2
cmp eax, 1
je 0x6357d6
lea ecx, [eax - 1]
test eax, ecx
je 0x6357d4
mov dword [esp], eax
call fcn.004cdfe0
mov ebx, eax
mov esi, dword [edi + 4]
cmp ebx, esi
jbe 0x6358da
mov ebp, ebx
cmp ebp, 0x40000000
jae 0x635b53
lea eax, [ebp*4]
mov dword [esp], eax
call fcn.0051c3d0
mov ecx, dword [edi]
mov dword [edi], eax
test ecx, ecx
je 0x63580e
mov dword [esp], ecx
call fcn.0051c570
mov dword [edi + 4], ebp
lea edx, [ebp - 1]
mov eax, ebp
and eax, 3
xor ecx, ecx
mov dword [esp + 0x10], edx
cmp edx, 3
jb 0x63585e
mov edx, ebp
and edx, 0xfffffffc
xor ecx, ecx
nop dword [eax + eax]
mov esi, dword [edi]
mov dword [esi + ecx*4], 0
mov esi, dword [edi]
mov dword [esi + ecx*4 + 4], 0
mov esi, dword [edi]
mov dword [esi + ecx*4 + 8], 0
mov esi, dword [edi]
mov dword [esi + ecx*4 + 0xc], 0
add ecx, 4
cmp edx, ecx
jne 0x635830
test eax, eax
je 0x63587d
nop word cs:[eax + eax]
mov edx, dword [edi]
mov dword [edx + ecx*4], 0
inc ecx
dec eax
jne 0x635870
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x635ad4
mov esi, eax
mov edx, dword [eax + 4]
mov eax, ebp
shr eax, 1
and eax, 0x55555555
mov ecx, ebp
sub ecx, eax
mov eax, ecx
and eax, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, eax
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
mov dword [esp + 4], eax
cmp eax, 1
ja 0x635991
and edx, dword [esp + 0x10]
jmp 0x63599b
jae 0x635ad4
movss xmm0, dword [edi + 0xc]
orpd xmm0, xmmword [0x8d0060]
subsd xmm0, qword [0x8d0050]
cvtsd2ss xmm0, xmm0
divss xmm0, dword [edi + 0x10]
movss dword [esp], xmm0
call fcn.0052a3a0
fstp dword [esp + 0x34]
movss xmm0, dword [esp + 0x34]
cvttss2si ecx, xmm0
mov edx, ecx
subss xmm0, dword [0x8d0058]
cvttss2si eax, xmm0
sar edx, 0x1f
and eax, edx
or eax, ecx
cmp esi, 3
jb 0x635a9e
mov ecx, esi
shr ecx, 1
and ecx, 0x55555555
mov edx, esi
sub edx, ecx
mov ecx, edx
and ecx, 0x33333333
shr edx, 2
and edx, 0x33333333
add edx, ecx
mov ecx, edx
shr ecx, 4
add ecx, edx
and ecx, 0xf0f0f0f
imul ecx, ecx, 0x1010101
shr ecx, 0x18
cmp ecx, 1
ja 0x635a9e
lea ecx, [eax - 1]
bsr ecx, ecx
xor ecx, 0x1f
neg cl
mov ebp, 1
shl ebp, cl
cmp eax, 2
cmovb ebp, eax
jmp 0x635aa8
cmp edx, ebp
jb 0x63599b
mov eax, edx
xor edx, edx
div ebp
mov eax, dword [edi]
mov ecx, dword [esp + 0x20]
mov dword [eax + edx*4], ecx
mov ebx, dword [esi]
test ebx, ebx
je 0x635ad4
mov ecx, esi
mov dword [esp + 0x30], ebp
jmp 0x6359cc
mov ecx, ebx
mov ebx, dword [ecx]
test ebx, ebx
je 0x635ad4
mov eax, dword [ebx + 4]
cmp dword [esp + 4], 1
ja 0x6359e0
and eax, dword [esp + 0x10]
jmp 0x6359ee
cmp eax, ebp
jb 0x6359ee
mov esi, edx
xor edx, edx
div ebp
mov eax, edx
mov edx, esi
cmp eax, edx
je 0x6359c0
mov esi, dword [edi]
cmp dword [esi + eax*4], 0
je 0x635a5c
mov dword [esp + 0x24], eax
mov esi, dword [ebx]
xor eax, eax
test esi, esi
je 0x635a68
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
lea eax, [ebx + 8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], ebx
mov ebp, ebx
nop dword [eax + eax]
add esi, 8
mov ecx, dword [esp + 0xc]
call fcn.0065c140
mov ebx, eax
mov edi, edx
mov ecx, esi
call fcn.0065c140
mov ecx, dword [ebp]
cmp ebx, eax
jne 0x635a6c
cmp edi, edx
jne 0x635a6c
mov esi, dword [ecx]
mov ebp, ecx
test esi, esi
jne 0x635a20
mov ebp, ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
xor eax, eax
jmp 0x635a7a
mov dword [esi + eax*4], ecx
mov ecx, ebx
mov edx, eax
jmp 0x6359c2
mov ebp, ebx
jmp 0x635a7a
mov eax, ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov dword [ecx], eax
mov edi, dword [esp + 0x28]
mov eax, dword [edi]
mov esi, dword [esp + 0x24]
mov eax, dword [eax + esi*4]
mov eax, dword [eax]
mov dword [ebp], eax
mov eax, dword [edi]
mov eax, dword [eax + esi*4]
mov dword [eax], ebx
mov ebp, dword [esp + 0x30]
jmp 0x6359c2
mov dword [esp], eax
call fcn.004cdfe0
mov ebp, eax
cmp ebx, ebp
cmova ebp, ebx
cmp ebp, esi
jae 0x635ad4
test ebp, ebp
jne 0x6357e3
mov eax, dword [edi]
mov dword [edi], 0
test eax, eax
je 0x635acd
mov dword [esp], eax
call fcn.0051c570
mov dword [edi + 4], 0
mov ebx, dword [edi + 4]
lea edx, [ebx - 1]
test ebx, edx
jne 0x635ae8
and edx, dword [esp + 8]
mov esi, dword [esp + 0x2c]
jmp 0x635afe
mov eax, dword [esp + 8]
cmp eax, ebx
mov esi, dword [esp + 0x2c]
jae 0x635af8
mov edx, eax
jmp 0x635afe
mov ecx, ebx
xor edx, edx
div ebx
mov ecx, dword [edi]
mov eax, dword [ecx + edx*4]
test eax, eax
je 0x635b0d
mov ecx, dword [eax]
mov dword [esi], ecx
jmp 0x635b3f
mov ebp, dword [esp + 0x20]
mov eax, dword [ebp]
mov dword [esi], eax
mov dword [ebp], esi
mov dword [ecx + edx*4], ebp
mov eax, dword [esi]
test eax, eax
je 0x635b41
mov eax, dword [eax + 4]
lea ecx, [ebx - 1]
test ebx, ecx
jne 0x635b30
and eax, ecx
jmp 0x635b3a
cmp eax, ebx
jb 0x635b3a
xor edx, edx
div ebx
mov eax, edx
shl eax, 2
add eax, dword [edi]
mov dword [eax], esi
inc dword [edi + 0xc]
mov al, 1
movzx edx, al
mov eax, esi
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret
call sub.api_ms_win_crt_runtime_l1_1_0.dll_abort
nop dword [eax + eax]
push ebp
push ebx
push edi
push esi
push eax
mov edx, dword [esp + 0x18]
mov esi, dword [edx + 4]
mov edi, dword [edx + 0xc]
mov eax, dword [edi + 0x18]
mov eax, dword [eax + 4]
cmp eax, esi
jg 0x635b9c
mov ebx, esi
sar ebx, 0x1f
mov ebp, eax
sar ebp, 0x1f
movsx edx, word [edi + 2]
mov edi, edx
sar edi, 0x1f
add edx, eax
adc edi, ebp
mov al, 1
cmp edx, esi
mov edx, dword [esp + 0x18]
sbb edi, ebx
jge 0x635bb0
add ecx, 0x38
mov byte [edx], 5
mov dword [esp], edx
mov edx, esp
call fcn.006355e0
mov eax, edx
and al, 1
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret 4