Function at 0x10006bd0
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], 0x10020a20
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 [0x101412a0]
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 [0x101412a4]
cvttss2si ecx, xmm0
mov esi, eax
sar esi, 0x1f
and esi, ecx
or esi, eax
movss xmm0, dword [edi + 8]
orpd xmm0, xmmword [0x101412b0]
subsd xmm0, qword [0x101412c0]
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 [0x101412a4]
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 0x10006cb3
mov ecx, dword [ebp + 8]
push eax
call fcn.1001fb80
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.1001f4b0
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 [0x102700e0]
mov eax, dword [ecx]
call dword [eax + 0x20]
jmp 0x10006d13
mov eax, dword [eax + 0x10]
test eax, eax
je 0x10006d41
mov edi, dword [eax + 0xc]
test edi, edi
je 0x10006d10
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.10007360
mov eax, dword [ebp - 0x20]
add esp, 0xc
jmp 0x10006d10
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 0x10007279
cmp dword [eax + 8], 0xd2eb9be3
je 0x10006de4
mov ecx, dword [ecx + edx*4]
nop word cs:[eax + eax]
cmp eax, ecx
je 0x10007279
mov eax, dword [eax + 4]
cmp dword [eax + 8], 0xd2eb9be3
jne 0x10006dd0
mov eax, dword [eax + 0xc]
movzx ecx, word [eax]
cmp ecx, 0x5a4d
jne 0x1000728d
mov ecx, dword [eax + 0x3c]
cmp dword [eax + ecx], 0x4550
jne 0x100072dc
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 0x10006e2b
add ecx, 4
add edx, 2
cmp ecx, 0x2c
je 0x10006ea0
lea esi, [edx - 1]
cmp esi, eax
je 0x1000721f
movzx ebx, byte [ebp + ecx - 0xa0]
cmp ebx, 3
je 0x10006e61
test ebx, ebx
je 0x10006e94
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 0x10006e94
cmp edx, eax
je 0x1000721f
movzx ebx, byte [ebp + ecx - 0x9e]
cmp ebx, 3
je 0x10006e20
test ebx, ebx
je 0x10006e94
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 0x10006e20
inc dword [ebp - 0x48]
jmp 0x10006e18
cmp eax, dword [ebp - 0x48]
je 0x1000721f
mov edi, dword [ebp - 0x48]
mov eax, edi
add eax, 2
je 0x10006ec2
mov edx, dword [eax]
add edx, 0xfffffffc
je 0x10006ef0
cmp dword [edx + 8], 0
jne 0x10006ecd
jmp 0x10006ef0
mov edx, 0xfffffffc
cmp dword [edx + 8], 0
je 0x10006ef0
cmp dword [edx], 0
je 0x10006ef0
mov eax, dword [edx + 4]
lea ecx, [eax - 0xc8]
cmp ecx, 0xffffff39
jae 0x10006ef9
nop word cs:[eax + eax]
inc edi
mov eax, dword [ebp - 0x20]
jmp 0x10006e15
xor ecx, ecx
mov dword [ebp - 0x5c], edx
jmp 0x10006f30
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.100205e0
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 0x10006ef0
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 0x10006f2f
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 0x10006f90
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.1001f5d0
jmp 0x10006fad
lea ebx, [ebp - 0x38]
cmp eax, 0x10
jb 0x10006f9b
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 0x10006fbc
mov eax, dword [ebp - 0x38]
add esi, eax
push 0x5f
push esi
push eax
call fcn.100f1e90
cmp eax, esi
je 0x10006fee
lea ecx, [eax + 1]
cmp ecx, esi
je 0x10006fee
mov edx, esi
sub edx, eax
lea edi, [edx - 1]
and edi, 3
jne 0x10007078
add edx, 0xfffffffe
cmp edx, 3
jae 0x1000709b
mov edi, dword [ebp - 0x28]
cmp dword [ebp - 0x24], 0x10
lea ecx, [ebp - 0x38]
jb 0x10006ffd
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 0x100070d0
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], 0x1016867b
mov dword [esp], 2
lea ecx, [ebp - 0x38]
call fcn.100194f0
jmp 0x100070ed
inc ecx
dec edi
je 0x10006fe2
movzx ebx, byte [ecx]
cmp bl, 0x5f
je 0x10007070
mov byte [eax], bl
inc eax
jmp 0x10007070
add ecx, 4
cmp ecx, esi
je 0x10006fee
movzx edx, byte [ecx]
cmp dl, 0x5f
je 0x100070a6
mov byte [eax], dl
inc eax
movzx edx, byte [ecx + 1]
cmp dl, 0x5f
je 0x100070b2
mov byte [eax], dl
inc eax
movzx edx, byte [ecx + 2]
cmp dl, 0x5f
je 0x100070be
mov byte [eax], dl
inc eax
movzx edx, byte [ecx + 3]
cmp dl, 0x5f
je 0x10007090
mov byte [eax], dl
inc eax
jmp 0x10007090
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 0x10007140
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.100194f0
jmp 0x10007163
mov edi, eax
add edi, ecx
mov dword [ebp - 0x28], edi
lea ebx, [ebp - 0x38]
cmp edx, 0x10
jb 0x10007152
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 0x10007186
mov ecx, dword [ebp - 0x38]
test eax, eax
je 0x10006f00
cmp eax, 4
jae 0x1000719c
mov edx, 0x45c3370d
xor esi, esi
jmp 0x100071ea
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 0x100071b0
and eax, 3
je 0x10007211
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 0x10007200
not edx
mov dword [ebp - 0x10], 0
jmp 0x10006f05
mov eax, dword [ebp + 8]
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x1000725d
mov ecx, dword [ebp - 0x38]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10007253
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x1000732b
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100f14b0
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 0x1016dde8
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 0x1016dde8
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.10007600
add esp, 0x10
pop ebp
ret