Function at 0x10006910
Capabilities:
Encode data using xor
Hash data using fnv
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xb0
mov esi, esp
mov dword [esi + 0x98], ebp
mov ebx, dword [ebp + 8]
mov dword [esi + 0x9c], esp
mov dword [esi + 0xa8], 0xffffffff
lea eax, [esi + 0xa0]
mov dword [esi + 0xa4], 0x1001f5a0
mov ecx, dword fs:[0]
mov dword [esi + 0xa0], ecx
mov dword fs:[0], eax
movss xmm0, dword [ebx]
movss xmm1, dword [0x10154040]
divss xmm1, xmm0
addss xmm1, dword [0x10154044]
cvttss2si eax, xmm1
mov ecx, eax
subss xmm1, dword [0x10154048]
cvttss2si edi, xmm1
sar ecx, 0x1f
and edi, ecx
or edi, eax
movss xmm1, dword [ebx + 8]
orpd xmm1, xmmword [0x10154050]
subsd xmm1, qword [0x10154060]
cvtsd2ss xmm1, xmm1
divss xmm1, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
add esp, 8
fstp dword [esi + 0x5c]
movss xmm0, dword [esi + 0x5c]
cvttss2si ecx, xmm0
subss xmm0, dword [0x10154048]
cvttss2si edx, xmm0
mov eax, ecx
sar eax, 0x1f
and eax, edx
or eax, ecx
cmp eax, edi
cmovbe eax, edi
cmp eax, dword [ebx + 0x1c]
jbe 0x100069f6
mov ecx, dword [ebp + 8]
push eax
call fcn.1001e800
xorps xmm0, xmm0
movaps xmmword [esi + 0x10], xmm0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0xf
mov dword [esi + 0xa8], 0
sub esp, 8
movzx eax, byte [esi + 0x6c]
mov byte [esp + 4], al
mov dword [esp], 0x80
lea ecx, [esi + 0x10]
call fcn.1001e120
mov dword [esi + 0x20], 0
lea eax, [esi + 0x10]
mov dword [esi + 0x64], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x68], eax
mov ecx, dword [0x1035681c]
mov eax, dword [ecx]
call dword [eax + 0x20]
jmp 0x10006a53
mov eax, dword [eax + 0x10]
test eax, eax
je 0x10006a84
mov ebx, dword [eax + 0xc]
test ebx, ebx
je 0x10006a50
mov edi, dword [eax + 8]
mov dword [esi + 0xa8], 0
mov dword [esi + 0x34], eax
lea ecx, [esi + 0x64]
mov edx, ecx
push 0
push ebx
push edi
call fcn.100070b0
mov eax, dword [esi + 0x34]
add esp, 0xc
jmp 0x10006a50
mov ax, 0xc701
mov cx, 0x501
mov dx, 3
movd xmm0, edx
mov dx, 0xc301
mov word [esi + 0x6c], ax
mov word [esi + 0x6e], cx
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmmword [esi + 0x70], xmm0
mov word [esi + 0x80], ax
mov ax, 0xcc01
mov word [esi + 0x82], cx
movdqu xmmword [esi + 0x84], xmm0
mov word [esi + 0x94], dx
mov word [esi + 0x96], ax
mov edi, dword [ebp + 0xc]
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 0x18]
add edx, edx
and edx, 0x88bf852c
mov eax, dword [ecx + edx*4 + 4]
cmp eax, dword [edi + 4]
je 0x10006fcc
cmp dword [eax + 8], 0xd2eb9be3
je 0x10006b24
mov ecx, dword [ecx + edx*4]
nop word cs:[eax + eax]
cmp eax, ecx
je 0x10006fcc
mov eax, dword [eax + 4]
cmp dword [eax + 8], 0xd2eb9be3
jne 0x10006b10
mov eax, dword [eax + 0xc]
movzx ecx, word [eax]
cmp ecx, 0x5a4d
jne 0x10006fe3
mov ecx, dword [eax + 0x3c]
cmp dword [eax + ecx], 0x4550
jne 0x10007035
mov edx, dword [eax + ecx + 0x2c]
add edx, eax
mov eax, dword [eax + ecx + 0x1c]
add eax, edx
mov dword [esi + 0x34], eax
mov dword [esi + 0x44], edx
inc edx
xor ecx, ecx
mov dword [esi + 0xc], edx
jmp 0x10006b6b
add ecx, 4
add edx, 2
cmp ecx, 0x2c
je 0x10006bd0
lea edi, [edx - 1]
cmp edi, eax
je 0x10006f72
movzx ebx, byte [esi + ecx + 0x6c]
cmp ebx, 3
je 0x10006b9b
test ebx, ebx
je 0x10006bc8
movzx eax, byte [esi + ecx + 0x6d]
cmp al, byte [edi]
sete al
cmp bl, 2
sete ah
cmp ah, al
mov eax, dword [esi + 0x34]
je 0x10006bc8
cmp edx, eax
je 0x10006f72
movzx ebx, byte [esi + ecx + 0x6e]
cmp ebx, 3
je 0x10006b60
test ebx, ebx
je 0x10006bc8
movzx eax, byte [esi + ecx + 0x6f]
cmp al, byte [edx]
sete al
cmp bl, 2
sete ah
cmp ah, al
mov eax, dword [esi + 0x34]
jne 0x10006b60
inc dword [esi + 0x44]
mov edx, dword [esi + 0xc]
jmp 0x10006b58
cmp eax, dword [esi + 0x44]
je 0x10006f72
mov edx, dword [esi + 0x44]
mov eax, edx
add eax, 2
je 0x10006bf2
mov edi, dword [eax]
add edi, 0xfffffffc
je 0x10006c20
cmp dword [edi + 8], 0
jne 0x10006bfd
jmp 0x10006c20
mov edi, 0xfffffffc
cmp dword [edi + 8], 0
je 0x10006c20
cmp dword [edi], 0
je 0x10006c20
mov eax, dword [edi + 4]
mov dword [esi + 8], eax
lea ecx, [eax - 0xc8]
cmp ecx, 0xffffff39
jae 0x10006c29
nop word cs:[eax + eax]
inc edx
mov eax, dword [esi + 0x34]
jmp 0x10006b55
xor ecx, ecx
mov dword [esi + 0x54], edi
jmp 0x10006c66
mov edx, 0xba3cc8f2
mov dword [esi + 0x60], edx
mov dword [esi + 0xa8], 0
mov ecx, dword [ebp + 8]
lea eax, [esi + 0x38]
push eax
lea eax, [esi + 0x60]
push eax
lea eax, [esi + 0x48]
push eax
call fcn.1001f160
mov edi, dword [esi + 0x54]
mov eax, dword [edi + 4]
mov dword [esi + 8], eax
mov edx, dword [esi + 0x44]
mov ecx, dword [esi + 0x58]
inc ecx
cmp ecx, dword [esi + 8]
jge 0x10006c20
mov ebx, dword [edi]
imul eax, ecx, 0x3c
mov dword [esi + 0xc], ebx
mov dword [esi + 0x50], eax
cmp dword [ebx + eax + 4], 0
je 0x10006c65
mov dword [esi + 0x58], ecx
mov ebx, dword [edi + 8]
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x24]
cmp eax, edi
jae 0x10006cc0
mov dword [esi + 0xa8], 0
sub esp, 0xc
movzx eax, byte [esi + 0x38]
mov byte [esp + 4], al
mov dword [esp + 8], ebx
mov dword [esp], edi
lea ecx, [esi + 0x10]
call fcn.1001e250
jmp 0x10006cdf
lea ecx, [esi + 0x10]
cmp eax, 0x10
jb 0x10006ccb
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x20], edi
push edi
push ebx
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebx + edi], 0
mov edi, dword [esi + 0x20]
cmp dword [esi + 0x24], 0x10
lea eax, [esi + 0x10]
jb 0x10006cee
mov eax, dword [esi + 0x10]
add edi, eax
push 0x5f
push edi
push eax
call fcn.100f7140
cmp eax, edi
je 0x10006d24
lea ecx, [eax + 1]
cmp ecx, edi
je 0x10006d24
mov edx, edi
sub edx, eax
lea ebx, [edx - 1]
add edx, 0xfffffffe
mov dword [esi + 8], edx
and ebx, 3
jne 0x10006db8
cmp dword [esi + 8], 3
jae 0x10006ddb
mov ebx, dword [esi + 0x20]
cmp dword [esi + 0x24], 0x10
lea ecx, [esi + 0x10]
jb 0x10006d33
mov ecx, dword [esi + 0x10]
mov edx, eax
sub edx, ecx
sub edi, eax
mov ecx, ebx
sub ecx, edx
cmp ecx, edi
cmovae ecx, edi
sub ebx, ecx
mov edi, ebx
sub edi, edx
inc edi
add ecx, eax
push edi
push ecx
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov dword [esi + 0x20], ebx
mov eax, dword [esi + 0x24]
mov ecx, eax
sub ecx, ebx
cmp ecx, 2
jae 0x10006e10
mov dword [esi + 0xa8], 0
sub esp, 0x10
movzx eax, byte [esi + 0x38]
mov byte [esp + 4], al
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0x1019b80d
mov dword [esp], 2
lea ecx, [esi + 0x10]
call fcn.100180f0
jmp 0x10006e2d
inc ecx
dec ebx
je 0x10006d1a
movzx edx, byte [ecx]
cmp dl, 0x5f
je 0x10006db0
mov byte [eax], dl
inc eax
jmp 0x10006db0
add ecx, 4
cmp ecx, edi
je 0x10006d24
movzx edx, byte [ecx]
cmp dl, 0x5f
je 0x10006de6
mov byte [eax], dl
inc eax
movzx edx, byte [ecx + 1]
cmp dl, 0x5f
je 0x10006df2
mov byte [eax], dl
inc eax
movzx edx, byte [ecx + 2]
cmp dl, 0x5f
je 0x10006dfe
mov byte [eax], dl
inc eax
movzx edx, byte [ecx + 3]
cmp dl, 0x5f
je 0x10006dd0
mov byte [eax], dl
inc eax
jmp 0x10006dd0
cmp eax, 0x10
mov eax, dword [esi + 0x10]
lea ecx, [esi + 0x10]
cmovb eax, ecx
lea ecx, [ebx + 2]
mov dword [esi + 0x20], ecx
mov word [eax + ebx], 0x3e2d
mov byte [eax + ebx + 2], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x50]
add eax, ecx
add eax, 4
mov edi, dword [eax]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
mov ebx, edx
sub ebx, ecx
cmp ebx, eax
jae 0x10006e80
mov dword [esi + 0xa8], 0
sub esp, 0x10
movzx ecx, byte [esi + 0x38]
mov byte [esp + 4], cl
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp], eax
lea ecx, [esi + 0x10]
call fcn.100180f0
jmp 0x10006ea8
mov dword [esi + 8], edi
mov ebx, eax
add ebx, ecx
mov dword [esi + 0x20], ebx
lea edi, [esi + 0x10]
cmp edx, 0x10
jb 0x10006e95
mov edi, dword [esi + 0x10]
add ecx, edi
push eax
push dword [esi + 8]
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [edi + ebx], 0
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x50]
mov eax, dword [eax + ecx + 8]
mov dword [esi + 0x3c], eax
mov edi, dword [esi + 0x20]
cmp dword [esi + 0x24], 0x10
lea eax, [esi + 0x10]
jb 0x10006ecb
mov eax, dword [esi + 0x10]
test edi, edi
je 0x10006c30
lea edx, [edi - 1]
mov ecx, edi
and ecx, 3
mov dword [esi + 0xc], ecx
cmp edx, 3
jae 0x10006eec
mov edx, 0x45c3370d
xor ebx, ebx
jmp 0x10006f3a
and edi, 0xfffffffc
mov edx, 0x45c3370d
xor ebx, ebx
nop word cs:[eax + eax]
movsx ecx, byte [eax + ebx]
xor ecx, edx
imul ecx, ecx, 0x1000193
movsx edx, byte [eax + ebx + 1]
xor edx, ecx
imul ecx, edx, 0x1000193
movsx edx, byte [eax + ebx + 2]
xor edx, ecx
imul ecx, edx, 0x1000193
movsx edx, byte [eax + ebx + 3]
xor edx, ecx
imul edx, edx, 0x1000193
add ebx, 4
cmp edi, ebx
jne 0x10006f00
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x10006f61
add eax, ebx
xor edi, edi
nop word cs:[eax + eax]
movsx ebx, byte [eax + edi]
xor ebx, edx
imul edx, ebx, 0x1000193
inc edi
cmp ecx, edi
jne 0x10006f50
not edx
mov dword [esi + 0xa8], 0
jmp 0x10006c35
mov eax, dword [ebp + 8]
mov edi, dword [eax + 8]
mov eax, dword [esi + 0x24]
cmp eax, 0x10
jb 0x10006fb0
mov ecx, dword [esi + 0x10]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x10006fa6
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10007087
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.100f6c02
add esp, 8
test edi, edi
setne al
mov ecx, dword [esi + 0xa0]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov dword [esi + 0xa8], 0
push str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [esi + 0x38], vtable.std::exception.0
lea eax, [esi + 0x3c]
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x48], str.invalid_dos_hdr.
mov byte [esi + 0x4c], 1
lea ecx, [esi + 0x48]
push eax
push ecx
call sub.VCRUNTIME140.dll___std_exception_copy
add esp, 8
mov dword [esi + 0x38], vtable.std::runtime_error.0
mov dword [esi + 0xa8], 0
lea eax, [esi + 0x38]
push 0x101a0518
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
add esp, 8
mov dword [esi + 0x38], vtable.std::exception.0
lea eax, [esi + 0x3c]
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x48], str.invalid_nt_hdrs.
mov byte [esi + 0x4c], 1
lea ecx, [esi + 0x48]
push eax
push ecx
call sub.VCRUNTIME140.dll___std_exception_copy
add esp, 8
mov dword [esi + 0x38], vtable.std::runtime_error.0
mov dword [esi + 0xa8], 0
lea eax, [esi + 0x38]
push 0x101a0518
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
add esp, 8
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop dword [eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0xac]
mov ebp, dword [esi + 0x98]
lea ecx, [esi + 0x10]
call fcn.10007360
add esp, 0x10
pop ebp
ret