Function at 0x100a544d
Capabilities:
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x30
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x10]
mov esi, edx
push eax
mov dword [esp + 0x14], esi
mov edi, ecx
call fcn.10011050
test al, al
je 0x100a5197
push esi
mov ecx, edi
call fcn.10010f00
mov esi, eax
lea eax, [esp + 0x20]
push eax
mov ecx, esi
call fcn.1000e0b0
lea eax, [esp + 0x30]
mov ecx, esi
push eax
call fcn.1000e040
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x24]
call fcn.1001d6c0
test al, al
jne 0x100a5197
mov edi, dword [esp + 0x44]
nop dword [eax]
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x2c]
movzx eax, byte [ebp]
cmp eax, 9
ja case.0x100a5018.3
movzx eax, byte [eax + 0x100a51b8]
jmp dword [eax*4 + 0x100a51a8]
mov esi, dword [esp + 0x24]
add esi, 0x28
jmp 0x100a5038
mov esi, dword [esp + 0x28]
jmp 0x100a5038
test ebx, ebx
jne case.0x100a5018.0
mov esi, ebp
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0x10203e3c
push eax
mov ecx, esi
call fcn.10011050
test al, al
je 0x100a506c
push 0x10203e3c
mov ecx, esi
call fcn.10010f00
cmp byte [eax], 7
jne 0x100a506c
lea edx, [esp + 0x14]
mov ecx, eax
call fcn.1001d630
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0x10203e40
push eax
mov ecx, esi
call fcn.10011050
test al, al
je 0x100a50a0
push 0x10203e40
mov ecx, esi
call fcn.10010f00
cmp byte [eax], 7
jne 0x100a50a0
lea edx, [esp + 0x18]
mov ecx, eax
call fcn.1001d630
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0x10203e44
push eax
mov ecx, esi
call fcn.10011050
test al, al
je 0x100a50d4
push 0x10203e44
mov ecx, esi
call fcn.10010f00
cmp byte [eax], 7
jne 0x100a50d4
lea edx, [esp + 0x1c]
mov ecx, eax
call fcn.1001d630
mov eax, dword [edi + 0x10]
inc eax
cmp dword [edi + 8], eax
ja 0x100a50e5
push ecx
mov ecx, edi
call fcn.10082ac0
mov eax, dword [edi + 8]
lea esi, [eax - 1]
and esi, dword [edi + 0xc]
mov dword [edi + 0xc], esi
cmove esi, eax
dec eax
dec esi
and eax, esi
lea ecx, [eax*4]
mov eax, dword [edi + 4]
mov dword [esp + 0x44], ecx
cmp dword [ecx + eax], 0
jne 0x100a5120
push 0xc
call fcn.1017d6f1
mov ecx, dword [edi + 4]
add esp, 4
mov edx, dword [esp + 0x44]
mov dword [edx + ecx], eax
mov ecx, dword [edi + 8]
mov eax, dword [edi + 4]
dec ecx
vmovq xmm0, qword [esp + 0x14]
and ecx, esi
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0x1c]
vmovq qword [ecx], xmm0
mov dword [ecx + 8], eax
inc dword [edi + 0x10]
mov dword [edi + 0xc], esi
movzx eax, byte [ebp]
cmp eax, 9
ja case.0x100a5153.0
movzx eax, byte [eax + 0x100a51d0]
jmp dword [eax*4 + 0x100a51c4]
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x44]
mov dword [esp + 0x44], eax
call fcn.10010a40
mov eax, dword [esp + 0x44]
mov dword [esp + 0x24], eax
jmp 0x100a5181
add dword [esp + 0x28], 0x10
jmp 0x100a5181
inc ebx
mov dword [esp + 0x2c], ebx
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x24]
call fcn.1001d6c0
test al, al
je 0x100a5000
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 4
call fcn.10182a3b
nop
mov eax, dword [0x1f100a51]
push eax
or dl, byte [eax]
sub byte [eax + 0xa], dl
adc byte [esi], ch
push eax
or dl, byte [eax]
add byte [ecx], al
add al, byte [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
nop
jl 0x100a5217
or dl, byte [eax]
pop edx
push ecx
or dl, byte [eax]
jne 0x100a521f
or dl, byte [eax]
add byte [ecx], al
add al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
int3
sub ecx, edx
push ecx
push esi
call fcn.1017b21b
mov edx, eax
lea ecx, [esp + 0xd0]
add byte [ebx + 0x248c8dd0], cl
rol byte [eax], 1
add byte [eax], al
call fcn.100214c0
push 8
push str.movement
call fcn.1017b21b
mov edx, eax
lea ecx, [esp + 0x48]
call fcn.100214c0
push 2
push 0x10203ec4
call fcn.1017b21b
mov edx, eax
lea ecx, [esp + 0x120]
call fcn.100214c0
sub esp, 0xc
lea eax, [esp + 0xd4]
mov edx, 0x106383a0
lea ecx, [esp + 0xec]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x12c]
push eax
call fcn.10025ce0
mov edx, eax
lea ecx, [esp + 0x164]
call fcn.10025ce0
mov edx, eax
lea ecx, [esp + 0x148]
call fcn.10025ce0
push eax
lea ecx, [esp + 0x178]
call fcn.10012690
lea ecx, [esp + 0x138]
call fcn.10025e70
lea ecx, [esp + 0x150]
call fcn.10025e70
lea ecx, [esp + 0xe0]
call fcn.10025e70
lea ecx, [esp + 0x118]
call fcn.10025e70
lea ecx, [esp + 0x40]
call fcn.10025e70
lea ecx, [esp + 0xc8]
call fcn.10025e70
mov eax, dword [esp + 0x168]
mov eax, dword [eax + 4]
cmp dword [esp + eax + 0x174], 0
jne 0x100a5a89
push 1
push 0
sub esp, 0x28
lea edx, [esp + 0x198]
mov eax, esp
lea ecx, [esp + 0x70]
mov dword [eax + 0x24], 0
call fcn.100127b0
mov cl, byte [esp + 0x58]
mov al, byte [esp + 0x40]
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
mov byte [esp + 0x3c], cl
push dword [esp + 0x3c]
mov byte [esp + 0x44], cl
mov ecx, dword [esp + 0x50]
mov byte [esp + 0x5c], al
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x68], ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], esi
call fcn.1000f550
cmp byte [esp + 0x58], 9
je 0x100a5a89
lea ecx, [esp + 0x168]
call fcn.10006af0
test bl, bl
jne 0x100a539b
mov ecx, 0x10759fe0
call fcn.100a7b20
mov ebx, 1
jmp 0x100a53a2
mov ebx, dword [0x10759fe8]
inc ebx
lea eax, [esp + 0xc8]
push eax
lea ecx, [esp + 0x5c]
call fcn.1000e0b0
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x5c]
call fcn.1000e040
mov esi, dword [esp + 0xc8]
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc0], esi
mov dword [esp + 0xc4], eax
cmp esi, eax
jne case.0x100a5597.0
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0xd4]
mov edi, dword [esp + 0xd0]
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], edi
mov dword [esp + 0x30], ecx
movzx ecx, byte [esi]
cmp ecx, 9
ja case.default.0x100a5430
movzx eax, byte [ecx + 0x100a5acc]
jmp dword [eax*4 + 0x100a5ac0]
mov eax, dword [esp + 0xb8]
cmp dword [esp + 0x30], eax
jmp 0x100a5453
cmp edi, dword [esp + 0xbc]
jmp 0x100a5453
mov eax, dword [esp + 0x3c]
cmp edx, eax
sete al
test al, al
jne 0x100a5a95
cmp ecx, 9
ja case.0x100a546a.3
movzx eax, byte [ecx + 0x100a5ae8]
jmp dword [eax*4 + 0x100a5ad8]
mov edi, dword [esp + 0x30]
add edi, 0x28
mov dword [esp + 0x2c], edi
jmp 0x100a548c
test edx, edx
jne case.0x100a5597.0
mov edi, esi
mov dword [esp + 0x2c], esi
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [esp + 0x74], xmm0
push 8
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0xf
mov byte [esp + 0x78], 0
vmovdqu xmmword [esp + 0x90], xmm0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
call fcn.1017d6f1
add esp, 4
lea ecx, [esp + 0x98]
mov edx, str.startpoint
mov dword [eax + 4], 0
mov dword [esp + 0x98], eax
mov dword [eax], ecx
lea eax, [esp + 0x68]
push eax
mov ecx, edi
call fcn.100a4c40
lea eax, [esp + 0x24]
mov dword [esp + 0x24], str.frames
push eax
mov ecx, edi
call fcn.10011050
test al, al
je 0x100a5691
push str.frames
mov ecx, edi
call fcn.10010f00
mov esi, eax
lea eax, [esp + 0x40]
push eax
mov ecx, esi
call fcn.1000e0b0
lea eax, [esp + 0x118]
mov ecx, esi
push eax
call fcn.1000e040
lea eax, [esp + 0x118]
push eax
lea ecx, [esp + 0x44]
call fcn.1001d6c0
test al, al
jne 0x100a5691
nop word [eax + eax]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x4c]
movzx eax, byte [edi]
cmp eax, 9
ja case.0x100a5597.3
movzx eax, byte [eax + 0x100a5b04]
jmp dword [eax*4 + 0x100a5af4]
mov ecx, dword [esp + 0x44]
add ecx, 0x28
jmp 0x100a55b7
mov ecx, dword [esp + 0x48]
jmp 0x100a55b7
test esi, esi
jne case.0x100a5597.0
mov ecx, edi
vxorps xmm0, xmm0, xmm0
xor eax, eax
mov dword [esp + 0xf4], 0
lea edx, [esp + 0xe0]
mov byte [esp + 0xf8], 0
vmovaps xmmword [esp + 0xe0], xmm0
vmovss dword [esp + 0xf0], xmm0
mov dword [esp + 0xfa], eax
call fcn.100a4db0
mov eax, dword [esp + 0x90]
cmp eax, dword [esp + 0x94]
je 0x100a561c
vmovdqu ymm0, ymmword [esp + 0xe0]
vmovdqu ymmword [eax], ymm0
add dword [esp + 0x90], 0x20
jmp 0x100a5631
lea ecx, [esp + 0xe0]
push ecx
push eax
lea ecx, [esp + 0x94]
call fcn.100a8710
movzx eax, byte [edi]
cmp eax, 9
ja case.0x100a5640.0
movzx eax, byte [eax + 0x100a5b1c]
jmp dword [eax*4 + 0x100a5b10]
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], eax
vzeroupper
call fcn.10010a40
mov eax, dword [esp + 0x24]
mov dword [esp + 0x44], eax
jmp 0x100a5671
add dword [esp + 0x48], 0x10
jmp 0x100a5671
inc esi
mov dword [esp + 0x4c], esi
lea eax, [esp + 0x118]
push eax
lea ecx, [esp + 0x44]
vzeroupper
call fcn.1001d6c0
test al, al
je 0x100a5580
mov edi, dword [esp + 0x2c]
lea eax, [esp + 0x98]
mov edx, str.steps
push eax
mov ecx, edi
call fcn.100a4fa0
cmp byte [esp + 0x2b], 0
je 0x100a5715
mov esi, dword [0x10759fe4]
movzx eax, bl
xor eax, 0x811c9dc5
mov dword [esp + 0x24], ebx
imul ecx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, ebx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x138]
push eax
call fcn.100a8540
mov ecx, esi
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, esi
je 0x100a5715
inc ebx
jmp 0x100a56b2
movzx eax, bl
xor eax, 0x811c9dc5
mov dword [esp + 0x24], ebx
imul ecx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
lea eax, [esp + 0x24]
imul edi, ecx, 0x1000193
push edi
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.100a8540
mov esi, dword [esp + 0xb4]
test esi, esi
jne 0x100a5840
cmp dword [0x10759fe8], 0x3333333
je 0x100a5ab3
push 0x50
call fcn.1017d6f1
mov ecx, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], eax
lea esi, [eax + 0xc]
mov dword [eax + 8], ecx
push 0x44
push 0
push esi
call fcn.1017ea60
add esp, 0xc
mov ecx, esi
call fcn.100a4200
mov eax, dword [0x10759fe8]
vxorps xmm0, xmm0, xmm0
inc eax
vcvtsi2sd xmm0, xmm0, eax
shr eax, 0x1f
vaddsd xmm0, xmm0, qword [eax*8 + 0x10229440]
mov eax, dword [0x10759ffc]
vcvtsd2ss xmm1, xmm0, xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, eax
shr eax, 0x1f
vaddsd xmm0, xmm0, qword [eax*8 + 0x10229440]
vcvtsd2ss xmm0, xmm0, xmm0
vdivss xmm0, xmm1, xmm0
vcomiss xmm0, dword [0x10759fe0]
jbe 0x100a582b
call fcn.100a82b0
mov esi, dword [esp + 0x2c]
push edi
lea eax, [esi + 8]
push eax
lea eax, [esp + 0xd0]
push eax
call fcn.100a8540
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], eax
jmp 0x100a5836
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0x2c]
push esi
push ecx
push edi
call fcn.100a8340
mov esi, eax
vmovq xmm0, qword [esp + 0x68]
vmovq qword [esi + 0xc], xmm0
mov ecx, dword [esp + 0x70]
lea eax, [esp + 0x74]
mov dword [esi + 0x14], ecx
lea ecx, [esi + 0x18]
cmp ecx, eax
je 0x100a5877
cmp dword [esp + 0x88], 0xf
push dword [esp + 0x84]
cmova eax, dword [esp + 0x78]
push eax
call fcn.1001ccf0
lea ecx, [esi + 0x30]
lea eax, [esp + 0x8c]
cmp ecx, eax
je 0x100a589f
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
sub eax, edx
sar eax, 5
push eax
push edx
call fcn.100a8120
lea ecx, [esi + 0x3c]
lea eax, [esp + 0x98]
cmp ecx, eax
je 0x100a58ca
mov edx, dword [esp + 0xa4]
mov edi, eax
mov eax, dword [esp + 0xa8]
mov esi, edi
add eax, edx
push eax
push edi
push edx
push esi
call fcn.100a85b0
mov eax, dword [esp + 0xa8]
inc ebx
test eax, eax
je 0x100a58e9
sub eax, 1
jne 0x100a58d6
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x100a5967
mov esi, dword [esp + 0xa0]
test esi, esi
jle 0x100a5926
nop
mov eax, dword [ecx + esi*4 - 4]
dec esi
test eax, eax
je 0x100a591b
push 0xc
push eax
call fcn.1017d3f8
mov ecx, dword [esp + 0xa4]
add esp, 8
test esi, esi
jg 0x100a5900
mov esi, dword [esp + 0xa0]
shl esi, 2
mov eax, ecx
cmp esi, 0x1000
jb 0x100a5947
mov ecx, dword [eax - 4]
add esi, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100a5aae
push esi
push ecx
call fcn.1017d3f8
add esp, 8
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0x98]
push 8
push eax
mov dword [esp + 0xa0], 0
call fcn.1017d3f8
mov edx, dword [esp + 0x94]
add esp, 8
test edx, edx
je 0x100a59e4
mov ecx, dword [esp + 0x94]
mov eax, edx
sub ecx, edx
and ecx, 0xffffffe0
cmp ecx, 0x1000
jb 0x100a59b9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100a5aae
push ecx
push edx
call fcn.1017d3f8
add esp, 8
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov ecx, dword [esp + 0x88]
cmp ecx, 0xf
jbe 0x100a5a1d
mov edx, dword [esp + 0x74]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100a5a13
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100a5aae
push ecx
push edx
call fcn.1017d3f8
add esp, 8
mov esi, dword [esp + 0xc0]
movzx eax, byte [esi]
cmp eax, 9
ja case.0x100a5a33.0
movzx eax, byte [eax + 0x100a5b34]
jmp dword [eax*4 + 0x100a5b28]
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], eax
call fcn.10010a40
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x30], eax
jmp 0x100a5a73
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
add edi, 0x10
mov dword [esp + 0x38], edi
jmp 0x100a5a77
mov edx, dword [esp + 0x34]
inc edx
mov dword [esp + 0x34], edx
mov edi, dword [esp + 0x38]
cmp esi, dword [esp + 0xc4]
jne case.0x100a5597.0
mov eax, dword [esp + 0x3c]
jmp 0x100a5421
lea ecx, [esp + 0x168]
call fcn.10006af0
push dword [esp + 0x58]
lea ecx, [esp + 0x64]
call fcn.1000f550
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.10182a3b
call fcn.101829ea
push str.unordered_map_set_too_long
call fcn.1017aed4
nop dword [eax]
dec ebp
push esp
or dl, byte [eax]
aaa
push esp
or dl, byte [eax]
inc esp
push esp
or dl, byte [eax]
add byte [ecx], al
add al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
nop
test eax, 0x71100a5a
push esp
or dl, byte [eax]
js 0x100a5b36
or dl, byte [eax]
jle 0x100a5b3a
or dl, byte [eax]
add byte [ecx], al
add al, byte [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
nop
test eax, 0x9e100a5a
push ebp
or dl, byte [eax]
cmpsd dword [esi], dword es:[edi]
push ebp
or dl, byte [eax]
lodsd eax, dword [esi]
push ebp
or dl, byte [eax]
add byte [ecx], al
add al, byte [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
nop
insb byte es:[edi], dx
push esi
or dl, byte [eax]
inc edi
push esi
or dl, byte [eax]
push esi
or dl, byte [eax]
add byte [ecx], al
add al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
nop
push 0x5a
or dl, byte [eax]
cmp bl, byte [edx + 0xa]
adc byte [ecx + 90], bl
or dl, byte [eax]
add byte [ecx], al
add al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
int3