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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x94
mov edi, dword [ebp + 8]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x10020700
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
movss xmm1, dword [edi]
movss dword [ebp - 0x20], xmm1
movss xmm0, dword [0x10146b40]
divss xmm0, xmm1
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
add esp, 8
fstp dword [ebp - 0x68]
movss xmm0, dword [ebp - 0x68]
cvttss2si eax, xmm0
subss xmm0, dword [0x10146b44]
cvttss2si ecx, xmm0
mov esi, eax
sar esi, 0x1f
and esi, ecx
or esi, eax
movss xmm0, dword [edi + 8]
orpd xmm0, xmmword [0x10146b50]
subsd xmm0, qword [0x10146b60]
cvtsd2ss xmm0, xmm0
divss xmm0, dword [ebp - 0x20]
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
add esp, 8
fstp dword [ebp - 0x64]
movss xmm0, dword [ebp - 0x64]
cvttss2si ecx, xmm0
subss xmm0, dword [0x10146b44]
cvttss2si edx, xmm0
mov eax, ecx
sar eax, 0x1f
and eax, edx
or eax, ecx
cmp eax, esi
cmovbe eax, esi
cmp eax, dword [edi + 0x1c]
jbe 0x10006c63
mov ecx, dword [ebp + 8]
push eax
call fcn.1001f860
xorps xmm0, xmm0
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov dword [ebp - 0x10], 0
sub esp, 8
movzx eax, byte [ebp - 0xa0]
mov byte [esp + 4], al
mov dword [esp], 0x80
lea ecx, [ebp - 0x38]
call fcn.1001f190
mov dword [ebp - 0x28], 0
lea eax, [ebp - 0x38]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x70], eax
mov ecx, dword [0x102a237c]
mov eax, dword [ecx]
call dword [eax + 0x20]
jmp 0x10006cc3
mov eax, dword [eax + 0x10]
test eax, eax
je 0x10006cf1
mov edi, dword [eax + 0xc]
test edi, edi
je 0x10006cc0
mov esi, dword [eax + 8]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x74]
mov edx, ecx
push 0
push edi
push esi
call fcn.10007310
mov eax, dword [ebp - 0x20]
add esp, 0xc
jmp 0x10006cc0
mov ax, 0xc701
mov cx, 0x501
mov dx, 3
movd xmm0, edx
mov dx, 0xc301
mov word [ebp - 0xa0], ax
mov word [ebp - 0x9e], cx
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmmword [ebp - 0x9c], xmm0
mov word [ebp - 0x8c], ax
mov ax, 0xcc01
mov word [ebp - 0x8a], cx
movdqu xmmword [ebp - 0x88], xmm0
mov word [ebp - 0x78], dx
mov word [ebp - 0x76], ax
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x18]
add edx, edx
and edx, 0x88bf852c
mov eax, dword [ecx + edx*4 + 4]
cmp eax, dword [esi + 4]
je 0x10007229
cmp dword [eax + 8], 0xd2eb9be3
je 0x10006d94
mov ecx, dword [ecx + edx*4]
nop word cs:[eax + eax]
cmp eax, ecx
je 0x10007229
mov eax, dword [eax + 4]
cmp dword [eax + 8], 0xd2eb9be3
jne 0x10006d80
mov eax, dword [eax + 0xc]
movzx ecx, word [eax]
cmp ecx, 0x5a4d
jne 0x1000723d
mov ecx, dword [eax + 0x3c]
cmp dword [eax + ecx], 0x4550
jne 0x1000728c
mov edi, dword [eax + ecx + 0x2c]
add edi, eax
mov eax, dword [eax + ecx + 0x1c]
add eax, edi
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x48], edi
inc edi
xor ecx, ecx
mov edx, edi
jmp 0x10006ddb
add ecx, 4
add edx, 2
cmp ecx, 0x2c
je 0x10006e50
lea esi, [edx - 1]
cmp esi, eax
je 0x100071cf
movzx ebx, byte [ebp + ecx - 0xa0]
cmp ebx, 3
je 0x10006e11
test ebx, ebx
je 0x10006e44
movzx eax, byte [ebp + ecx - 0x9f]
cmp al, byte [esi]
sete al
cmp bl, 2
sete ah
cmp ah, al
mov eax, dword [ebp - 0x20]
je 0x10006e44
cmp edx, eax
je 0x100071cf
movzx ebx, byte [ebp + ecx - 0x9e]
cmp ebx, 3
je 0x10006dd0
test ebx, ebx
je 0x10006e44
movzx eax, byte [ebp + ecx - 0x9d]
cmp al, byte [edx]
sete al
cmp bl, 2
sete ah
cmp ah, al
mov eax, dword [ebp - 0x20]
jne 0x10006dd0
inc dword [ebp - 0x48]
jmp 0x10006dc8
cmp eax, dword [ebp - 0x48]
je 0x100071cf
mov edi, dword [ebp - 0x48]
mov eax, edi
add eax, 2
je 0x10006e72
mov edx, dword [eax]
add edx, 0xfffffffc
je 0x10006ea0
cmp dword [edx + 8], 0
jne 0x10006e7d
jmp 0x10006ea0
mov edx, 0xfffffffc
cmp dword [edx + 8], 0
je 0x10006ea0
cmp dword [edx], 0
je 0x10006ea0
mov eax, dword [edx + 4]
lea ecx, [eax - 0xc8]
cmp ecx, 0xffffff39
jae 0x10006ea9
nop word cs:[eax + eax]
inc edi
mov eax, dword [ebp - 0x20]
jmp 0x10006dc5
xor ecx, ecx
mov dword [ebp - 0x5c], edx
jmp 0x10006ee0
mov edx, 0xba3cc8f2
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.100202c0
mov edx, dword [ebp - 0x5c]
mov eax, dword [edx + 4]
mov edi, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x60]
inc ecx
cmp ecx, eax
jge 0x10006ea0
mov esi, dword [edx]
imul ebx, ecx, 0x3c
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], ebx
cmp dword [esi + ebx + 4], 0
je 0x10006edf
mov dword [ebp - 0x60], ecx
mov edi, dword [edx + 8]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x24]
cmp eax, esi
jae 0x10006f40
mov dword [ebp - 0x10], 0
sub esp, 0xc
movzx eax, byte [ebp - 0x44]
mov byte [esp + 4], al
mov dword [esp + 8], edi
mov dword [esp], esi
lea ecx, [ebp - 0x38]
call fcn.1001f2b0
jmp 0x10006f5d
lea ebx, [ebp - 0x38]
cmp eax, 0x10
jb 0x10006f4b
mov ebx, dword [ebp - 0x38]
mov dword [ebp - 0x28], esi
push esi
push edi
push ebx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebx + esi], 0
mov esi, dword [ebp - 0x28]
cmp dword [ebp - 0x24], 0x10
lea eax, [ebp - 0x38]
jb 0x10006f6c
mov eax, dword [ebp - 0x38]
add esi, eax
push 0x5f
push esi
push eax
call fcn.100ea600
cmp eax, esi
je 0x10006f9e
lea ecx, [eax + 1]
cmp ecx, esi
je 0x10006f9e
mov edx, esi
sub edx, eax
lea edi, [edx - 1]
and edi, 3
jne 0x10007028
add edx, 0xfffffffe
cmp edx, 3
jae 0x1000704b
mov edi, dword [ebp - 0x28]
cmp dword [ebp - 0x24], 0x10
lea ecx, [ebp - 0x38]
jb 0x10006fad
mov ecx, dword [ebp - 0x38]
mov edx, eax
sub edx, ecx
sub esi, eax
mov ecx, edi
sub ecx, edx
cmp ecx, esi
cmovae ecx, esi
sub edi, ecx
mov esi, edi
sub esi, edx
inc esi
add ecx, eax
push esi
push ecx
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov dword [ebp - 0x28], edi
mov eax, dword [ebp - 0x24]
mov ecx, eax
sub ecx, edi
cmp ecx, 2
jae 0x10007080
mov dword [ebp - 0x10], 0
sub esp, 0x10
movzx eax, byte [ebp - 0x44]
mov byte [esp + 4], al
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0x1016d9c1
mov dword [esp], 2
lea ecx, [ebp - 0x38]
call fcn.10019310
jmp 0x1000709d
inc ecx
dec edi
je 0x10006f92
movzx ebx, byte [ecx]
cmp bl, 0x5f
je 0x10007020
mov byte [eax], bl
inc eax
jmp 0x10007020
add ecx, 4
cmp ecx, esi
je 0x10006f9e
movzx edx, byte [ecx]
cmp dl, 0x5f
je 0x10007056
mov byte [eax], dl
inc eax
movzx edx, byte [ecx + 1]
cmp dl, 0x5f
je 0x10007062
mov byte [eax], dl
inc eax
movzx edx, byte [ecx + 2]
cmp dl, 0x5f
je 0x1000706e
mov byte [eax], dl
inc eax
movzx edx, byte [ecx + 3]
cmp dl, 0x5f
je 0x10007040
mov byte [eax], dl
inc eax
jmp 0x10007040
cmp eax, 0x10
mov eax, dword [ebp - 0x38]
lea ecx, [ebp - 0x38]
cmovb eax, ecx
lea ecx, [edi + 2]
mov dword [ebp - 0x28], ecx
mov word [eax + edi], 0x3e2d
mov byte [eax + edi + 2], 0
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
add eax, ecx
add eax, 4
mov esi, dword [eax]
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov edi, edx
sub edi, ecx
cmp edi, eax
jae 0x100070f0
mov dword [ebp - 0x10], 0
sub esp, 0x10
movzx ecx, byte [ebp - 0x44]
mov byte [esp + 4], cl
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp], eax
lea ecx, [ebp - 0x38]
call fcn.10019310
jmp 0x10007113
mov edi, eax
add edi, ecx
mov dword [ebp - 0x28], edi
lea ebx, [ebp - 0x38]
cmp edx, 0x10
jb 0x10007102
mov ebx, dword [ebp - 0x38]
add ecx, ebx
push eax
push esi
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebx + edi], 0
mov dword [ebp - 0x44], 0
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
mov eax, dword [eax + ecx + 8]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x24], 0x10
lea ecx, [ebp - 0x38]
jb 0x10007136
mov ecx, dword [ebp - 0x38]
test eax, eax
je 0x10006eb0
cmp eax, 4
jae 0x1000714c
mov edx, 0x45c3370d
xor esi, esi
jmp 0x1000719a
mov edi, eax
and edi, 0xfffffffc
mov edx, 0x45c3370d
xor esi, esi
nop dword [eax + eax]
movsx ebx, byte [ecx + esi]
xor ebx, edx
imul edx, ebx, 0x1000193
movsx ebx, byte [ecx + esi + 1]
xor ebx, edx
imul edx, ebx, 0x1000193
movsx ebx, byte [ecx + esi + 2]
xor ebx, edx
imul edx, ebx, 0x1000193
movsx ebx, byte [ecx + esi + 3]
xor ebx, edx
imul edx, ebx, 0x1000193
add esi, 4
cmp edi, esi
jne 0x10007160
and eax, 3
je 0x100071c1
add ecx, esi
xor esi, esi
nop word cs:[eax + eax]
movsx edi, byte [ecx + esi]
xor edi, edx
imul edx, edi, 0x1000193
inc esi
cmp eax, esi
jne 0x100071b0
not edx
mov dword [ebp - 0x10], 0
jmp 0x10006eb5
mov eax, dword [ebp + 8]
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x1000720d
mov ecx, dword [ebp - 0x38]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10007203
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x100072db
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100ea090
add esp, 8
test esi, esi
setne al
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0x94
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov dword [ebp - 0x10], 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 [ebp - 0x44], vtable.std::exception.0
lea eax, [ebp - 0x40]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x50], str.invalid_dos_hdr.
mov byte [ebp - 0x4c], 1
lea ecx, [ebp - 0x50]
push eax
push ecx
call sub.VCRUNTIME140.dll___std_exception_copy
add esp, 8
mov dword [ebp - 0x44], vtable.std::runtime_error.0
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x44]
push 0x10172a48
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
add esp, 8
mov dword [ebp - 0x44], vtable.std::exception.0
lea eax, [ebp - 0x40]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x50], str.invalid_nt_hdrs.
mov byte [ebp - 0x4c], 1
lea ecx, [ebp - 0x50]
push eax
push ecx
call sub.VCRUNTIME140.dll___std_exception_copy
add esp, 8
mov dword [ebp - 0x44], vtable.std::runtime_error.0
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x44]
push 0x10172a48
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 word cs:[eax + eax]
push ebp
sub esp, 0x10
add ebp, 0xc
lea ecx, [ebp - 0x38]
call fcn.100075b0
add esp, 0x10
pop ebp
ret