Function at 0x100ba543
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xffffffe0
sub esp, 0xc0
mov esi, esp
mov dword [esi + 0x98], ebp
mov edi, ecx
mov dword [esi + 0x9c], esp
mov dword [esi + 0xa8], 0xffffffff
lea eax, [esi + 0xa0]
mov dword [esi + 0xa4], 0x100bd3c0
mov ecx, dword fs:[0]
mov dword [esi + 0xa0], ecx
mov dword fs:[0], eax
mov eax, dword [0x1025add0]
cmp byte [eax], 0
jne 0x100ba649
mov eax, dword [0x1025adc8]
cmp byte [eax + 0x1bd], 0
jne 0x100ba649
mov ecx, dword [0x1025add4]
cmp byte [ecx + 0x10], 0
jne 0x100ba649
mov ecx, dword [0x1025ae18]
cmp dword [ecx + 0x4d28], 0xe
jg 0x100ba649
test byte [eax + 0x1d4], 1
je 0x100ba649
mov eax, dword [0x1025ae04]
mov ecx, dword [eax]
mov eax, dword [0x1025af50]
test al, 1
je 0x100ba6fc
mov ebx, dword [0x1025af4c]
mov eax, dword [ebx + 4]
test byte [eax + ecx], 0x40
jne 0x100ba649
mov eax, dword [0x1025ae04]
mov edx, dword [eax]
mov eax, dword [0x102606fc]
test al, 1
je 0x100ba7f9
mov ebx, dword [0x102606f8]
mov ecx, dword [ebp + 8]
mov eax, dword [ebx + 4]
movzx ebx, byte [eax + edx]
test ecx, ecx
je 0x100ba2e2
mov ecx, dword [ecx + 4]
mov edx, 0x1b4e81b5
mov eax, ecx
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 4
add edx, eax
imul eax, edx, 0x96
sub ecx, eax
cmp ecx, 0x96
jae 0x100ba8bb
mov eax, dword [0x1025ade0]
imul edx, ecx, 0x854
movzx ecx, byte [eax + edx + 0x1b64]
movzx eax, byte [eax + edx + 0x1c0c]
jmp 0x100ba2e6
xor eax, eax
xor ecx, ecx
mov edx, dword [0x1025adc4]
cmp byte [edx + 0x154], 0
je 0x100ba36c
cmp bl, 8
je 0x100ba36c
cmp bl, 9
je 0x100ba36c
cmp dword [ebp + 8], 0
je 0x100ba317
cmp cl, 9
je 0x100ba36c
cmp al, 9
je 0x100ba36c
mov eax, dword [ebp + 8]
test byte [eax + 0x30], 0x20
jne 0x100ba36c
mov eax, dword [0x1025ae04]
mov ecx, dword [eax]
mov eax, dword [0x1025af50]
test al, 1
je 0x100baa79
mov ebx, dword [0x1025af4c]
mov eax, dword [ebx + 4]
test byte [eax + ecx], 0x40
jne 0x100ba36c
mov eax, dword [0x1025adc8]
movzx ecx, byte [eax + 0x1d4]
test cl, 0x10
jne 0x100ba36c
cmp byte [eax + 0x1bd], 0
jne 0x100ba36c
mov edx, dword [0x1025ae18]
cmp dword [edx + 0x4d28], 0
jg 0x100ba36c
or cl, 2
mov byte [eax + 0x1d4], cl
mov ecx, dword [0x1025adc4]
cmp byte [ecx + 0x19c], 0
je 0x100ba649
add ecx, 0x1a4
mov dword [esi + 0x20], 0
mov dword [esi + 0xa8], 0xffffffff
lea eax, [esi + 0x20]
lea edx, [esi + 0x40]
push eax
push edx
call fcn.10036c40
mov eax, dword [esi + 0x40]
movzx ebx, byte [eax + 0xc]
test bl, bl
je 0x100ba41d
mov al, 1
test bl, bl
jne 0x100ba4e3
mov ecx, 0x1a4
add ecx, dword [0x1025adc4]
mov dword [esi + 0x80], 2
mov dword [esi + 0xa8], 0xffffffff
lea eax, [esi + 0x80]
push eax
lea eax, [esi + 0x40]
push eax
call fcn.10036c40
mov eax, dword [esi + 0x40]
cmp byte [eax + 0xc], 0
je 0x100ba4aa
mov eax, dword [0x1025ae04]
mov ecx, dword [eax]
mov eax, dword [0x1025af50]
test al, 1
je 0x100bac80
mov ebx, dword [0x1025af4c]
mov eax, dword [ebx + 4]
test byte [eax + ecx], 1
sete al
jmp 0x100ba4e3
mov ecx, 0x1a4
add ecx, dword [0x1025adc4]
mov dword [esi + 0x80], 1
lea eax, [esi + 0x80]
push eax
lea eax, [esi + 0x40]
push eax
call fcn.10036c40
mov eax, dword [esi + 0x40]
cmp byte [eax + 0xc], 0
je 0x100ba3ae
mov byte [esi + 8], bl
mov eax, dword [0x1025ae04]
mov ecx, dword [eax]
mov eax, dword [0x1026073c]
test al, 1
je 0x100bab76
mov ebx, dword [0x10260738]
mov eax, dword [ebx + 4]
movss xmm0, dword [eax + ecx]
movss xmm1, dword [eax + ecx + 4]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
movss xmm1, dword [eax + ecx + 8]
mulss xmm1, xmm1
addss xmm1, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jb 0x100ba4ae
sqrtsd xmm0, xmm0
jmp 0x100ba4cc
xor eax, eax
jmp 0x100ba4e3
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
add esp, 8
fstp qword [esi + 0x90]
movsd xmm0, qword [esi + 0x90]
movzx ebx, byte [esi + 8]
cvtsd2ss xmm0, xmm0
ucomiss xmm0, dword [0x101a9ae8]
jbe 0x100ba3ae
mov al, 1
test al, al
jne 0x100ba4f9
mov eax, dword [0x1025adec]
cmp byte [eax + 0xa8], 0
je 0x100ba5a2
mov eax, dword [0x1025ae18]
mov eax, dword [eax + 0x4d24]
cmp dword [edi + 0x14], eax
je 0x100ba50c
mov dword [edi + 0x14], eax
mov eax, dword [0x1025adc8]
movzx ebx, byte [eax + 0x1d4]
test bl, 2
jne 0x100ba649
lea edi, [eax + 0x1d4]
mov ecx, dword [0x1025adc4]
mov ecx, dword [ecx + 0x1a0]
cmp ecx, 3
ja case.default.0x100ba53c
jmp dword [ecx*4 + 0x101b1ab0]
mov eax, dword [0x1025ae04]
mov ecx, dword [eax]
mov eax, dword [0x1026073c]
test al, 1
je 0x100bae58
mov ebx, dword [0x10260738]
mov eax, dword [ebx + 4]
movss xmm0, dword [eax + ecx]
movss xmm1, dword [eax + ecx + 4]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
movss xmm1, dword [eax + ecx + 8]
mulss xmm1, xmm1
addss xmm1, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jb 0x100ba65f
sqrtsd xmm0, xmm0
jmp 0x100ba67d
mov eax, dword [0x1025adc8]
movzx ebx, byte [eax + 0x1d4]
test bl, 2
jne 0x100ba649
mov ecx, dword [0x1025ae18]
mov edx, dword [edi + 0x14]
cmp edx, dword [ecx + 0x4d24]
je 0x100ba521
jmp 0x100ba649
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov edx, 0x88888889
mov eax, ecx
imul edx
add edx, ecx
mov eax, edx
shr eax, 0x1f
sar edx, 4
add edx, eax
mov eax, edx
shl eax, 5
add edx, edx
sub edx, eax
add edx, ecx
cmp edx, 0xf
jge case.0x100ba53c.1
jmp case.default.0x100ba53c
cmp byte [eax + 0x1c1], 0
je case.0x100ba53c.1
and bl, 0xfd
jmp 0x100ba60c
or bl, 2
mov byte [edi], bl
mov eax, dword [0x1025ae18]
mov ecx, dword [eax + 0x4d28]
mov eax, dword [0x1025adc4]
cmp ecx, dword [eax + 0x1c4]
jl 0x100ba649
cmp byte [eax + 0x1c8], 0
je 0x100ba63d
mov eax, dword [0x1025adec]
cmp byte [eax + 0xa8], 0
jne 0x100ba649
mov eax, dword [0x1025adc8]
and byte [eax + 0x1d4], 0xfd
mov eax, dword [esi + 0xa0]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
add esp, 8
fstp qword [esi + 0x88]
movsd xmm0, qword [esi + 0x88]
cvtsd2ss xmm0, xmm0
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
mov eax, dword [0x1025ae0c]
mulss xmm0, dword [eax + 0x20]
cvttss2si eax, xmm0
cmp eax, 0xffffffbb
jg 0x100ba6ba
mov eax, dword [0x1025ae18]
cmp dword [eax + 0x4d28], 0
jle 0x100ba6cd
mov eax, dword [0x1025adc8]
and byte [eax + 0x1d4], 0xfd
jmp case.default.0x100ba53c
cmp eax, 0x45
jl 0x100ba6de
mov eax, dword [0x1025ae18]
cmp dword [eax + 0x4d28], 3
jge 0x100ba6a9
mov eax, dword [0x1025adc8]
or byte [eax + 0x1d4], 2
jmp case.default.0x100ba53c
xor ecx, ecx
cmp eax, 0x23
setl cl
lea eax, [ecx + ecx*4]
add eax, 4
mov ecx, dword [0x1025ae18]
cmp dword [ecx + 0x4d28], eax
jge 0x100ba6a9
jmp 0x100ba6cd
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x18], edi
or eax, 1
mov dword [0x1025af50], eax
mov eax, 0xde3f1734
mov ecx, 0x8ed6b37d
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0x92328649
mov ecx, 0x74b5ab13
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0x74b356a7
mov ecx, 0x62352441
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x9db8cf2
mov ecx, 0x7278c207
mov edx, 0xad5e5577
mov edi, 0xefbae318
mov dword [esi + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0xbf40e330
mov edi, 0x12eac62d
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edx
mov edx, 0x13d23ae1
mov edi, 0x62352432
mov dword [esi + 0x54], edi
mov dword [esi + 0x50], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
lea eax, [esi + 0x40]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [eax + 0x10]
mov eax, dword [0x1025adcc]
mov dword [esi + 0x14], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0xa8], 0
lea eax, [esi + 0x20]
lea ecx, [esi + 0x60]
mov dword [esi + 0xc], ecx
push eax
call fcn.10015170
mov eax, dword [esi + 0x70]
mov dword [esi + 8], eax
cmp dword [esi + 0x74], 0x10
jb 0x100ba7cf
mov eax, dword [esi + 0x60]
mov dword [esi + 0xc], eax
cmp dword [esi + 8], 0
je 0x100ba8b4
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x100ba8ca
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100ba914
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], edi
or eax, 1
mov dword [0x102606fc], eax
mov eax, dword [0x1025adcc]
mov dword [esi + 0x14], eax
mov eax, 0xc2130a1a
mov ecx, 0x96ee866e
mov dword [esi + 0x64], ecx
mov dword [esi + 0x60], eax
mov ecx, 0xbf408640
mov eax, 0x12eac62d
mov edx, 0x12eac62d
mov dword [esi + 0x6c], edx
mov dword [esi + 0x68], ecx
mov ecx, 0xad5e5577
mov edx, 0xefbae318
mov dword [esi + 0x24], edx
mov dword [esi + 0x20], ecx
mov ecx, 0xbf40e330
mov dword [esi + 0x2c], eax
mov dword [esi + 0x28], ecx
lea eax, [esi + 0x20]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x60]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x60], xmm0
mov dword [esi + 0xa8], 2
lea eax, [esi + 0x60]
lea ecx, [esi + 0x40]
mov dword [esi + 0xc], ecx
push eax
call fcn.10015170
mov eax, dword [esi + 0x50]
mov dword [esi + 8], eax
cmp dword [esi + 0x54], 0x10
jb 0x100ba88a
mov eax, dword [esi + 0x40]
mov dword [esi + 0xc], eax
cmp dword [esi + 8], 0
je 0x100ba99e
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x100ba9a5
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100ba9ef
mov ecx, 0x811c9dc5
jmp 0x100ba931
mov dword [esi + 0xa8], 0xffffffff
call fcn.1009f460
mov edi, dword [esi + 8]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0xc]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100ba8da
cmp dword [esi + 0x10], 0
je 0x100ba931
add edx, dword [esi + 0xc]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x10], edi
jne 0x100ba91f
mov edx, dword [esi + 0x14]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100bb1f0
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x100ba975
cmp dword [ebx + 0x1c], 0x10
jb 0x100ba95f
mov eax, dword [ebx + 8]
jmp 0x100ba962
lea eax, [ebx + 8]
push dword [esi + 8]
push eax
push dword [esi + 0xc]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100ba982
cmp ebx, edi
je 0x100bb1f0
mov ebx, dword [ebx + 4]
jmp 0x100ba94c
add ebx, 0x20
lea ecx, [esi + 0x60]
call fcn.10015110
mov dword [0x1025af4c], ebx
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
jmp 0x100ba266
mov ecx, 0x811c9dc5
jmp 0x100baa0c
mov edi, dword [esi + 8]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0xc]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100ba9b5
cmp dword [esi + 0x10], 0
je 0x100baa0c
add edx, dword [esi + 0xc]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x10], edi
jne 0x100ba9fa
mov edx, dword [esi + 0x14]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100bb207
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x100baa50
cmp dword [ebx + 0x1c], 0x10
jb 0x100baa3a
mov eax, dword [ebx + 8]
jmp 0x100baa3d
lea eax, [ebx + 8]
push dword [esi + 8]
push eax
push dword [esi + 0xc]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100baa5d
cmp ebx, edi
je 0x100bb207
mov ebx, dword [ebx + 4]
jmp 0x100baa27
add ebx, 0x20
lea ecx, [esi + 0x40]
call fcn.10015110
mov dword [0x102606f8], ebx
mov edi, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
jmp 0x100ba28d
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x18], edi
or eax, 1
mov dword [0x1025af50], eax
mov eax, 0xde3f1734
mov ecx, 0x8ed6b37d
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0x92328649
mov ecx, 0x74b5ab13
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0x74b356a7
mov ecx, 0x62352441
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x9db8cf2
mov ecx, 0x7278c207
mov edx, 0xad5e5577
mov edi, 0xefbae318
mov dword [esi + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0xbf40e330
mov edi, 0x12eac62d
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edx
mov edx, 0x13d23ae1
mov edi, 0x62352432
mov dword [esi + 0x54], edi
mov dword [esi + 0x50], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
lea eax, [esi + 0x40]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [eax + 0x10]
mov eax, dword [0x1025adcc]
mov dword [esi + 0x14], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0xa8], 4
lea eax, [esi + 0x20]
lea ecx, [esi + 0x60]
mov dword [esi + 0xc], ecx
push eax
call fcn.10015170
mov eax, dword [esi + 0x70]
mov dword [esi + 8], eax
cmp dword [esi + 0x74], 0x10
jb 0x100bab4c
mov eax, dword [esi + 0x60]
mov dword [esi + 0xc], eax
cmp dword [esi + 8], 0
je 0x100bad7d
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x100bad84
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100badce
mov dword [esi + 0x84], ecx
mov dword [esi + 0x18], edi
or eax, 1
mov dword [0x1026073c], eax
mov eax, dword [0x1025adcc]
mov dword [esi + 0x1c], eax
mov eax, 0xde3f1734
mov ecx, 0x8ed6b37d
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0x92328649
mov ecx, 0x64b5ab13
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0x76845984
mov ecx, 0xb564b5e
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x3980f586
mov ecx, 0x7278c25a
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov eax, 0xad5e5577
mov ecx, 0xefbae318
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xbf40e330
mov ecx, 0x12eac62d
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0x13d23ae1
mov ecx, 0x62352432
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov eax, 0x9db8cf2
mov ecx, 0x7278c207
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
xor eax, eax
lea ecx, [esi + 0x40]
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [ecx + 0x10]
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0xa8], 6
lea ecx, [esi + 0x60]
mov dword [esi + 0x10], ecx
lea eax, [esi + 0x20]
push eax
call fcn.10015170
mov eax, dword [esi + 0x70]
mov dword [esi + 0xc], eax
cmp dword [esi + 0x74], 0x10
jb 0x100bac56
mov eax, dword [esi + 0x60]
mov dword [esi + 0x10], eax
cmp dword [esi + 0xc], 0
je 0x100baf5c
mov eax, dword [esi + 0xc]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x14], ecx
cmp eax, 4
jae 0x100baf6d
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100bafb7
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x18], edi
or eax, 1
mov dword [0x1025af50], eax
mov eax, 0xde3f1734
mov ecx, 0x8ed6b37d
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0x92328649
mov ecx, 0x74b5ab13
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0x74b356a7
mov ecx, 0x62352441
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x9db8cf2
mov ecx, 0x7278c207
mov edx, 0xad5e5577
mov edi, 0xefbae318
mov dword [esi + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0xbf40e330
mov edi, 0x12eac62d
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edx
mov edx, 0x13d23ae1
mov edi, 0x62352432
mov dword [esi + 0x54], edi
mov dword [esi + 0x50], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
xor eax, eax
lea ecx, [esi + 0x40]
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [ecx + 0x10]
mov eax, dword [0x1025adcc]
mov dword [esi + 0x14], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0xa8], 8
lea ecx, [esi + 0x60]
mov dword [esi + 0xc], ecx
lea eax, [esi + 0x20]
push eax
call fcn.10015170
mov eax, dword [esi + 0x70]
mov dword [esi + 8], eax
cmp dword [esi + 0x74], 0x10
jb 0x100bad53
mov eax, dword [esi + 0x60]
mov dword [esi + 0xc], eax
cmp dword [esi + 8], 0
je 0x100baf63
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x100bb044
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100bb08e
mov ecx, 0x811c9dc5
jmp 0x100badeb
mov edi, dword [esi + 8]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0xc]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100bad94
cmp dword [esi + 0x10], 0
je 0x100badeb
add edx, dword [esi + 0xc]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x10], edi
jne 0x100badd9
mov edx, dword [esi + 0x14]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100bb21e
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x100bae2f
cmp dword [ebx + 0x1c], 0x10
jb 0x100bae19
mov eax, dword [ebx + 8]
jmp 0x100bae1c
lea eax, [ebx + 8]
push dword [esi + 8]
push eax
push dword [esi + 0xc]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100bae3c
cmp ebx, edi
je 0x100bb21e
mov ebx, dword [ebx + 4]
jmp 0x100bae06
add ebx, 0x20
lea ecx, [esi + 0x60]
call fcn.10015110
mov dword [0x1025af4c], ebx
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
jmp 0x100ba331
mov dword [esi + 0x14], ecx
or eax, 1
mov dword [0x1026073c], eax
mov eax, dword [0x1025adcc]
mov dword [esi + 0x18], eax
mov eax, 0xde3f1734
mov ecx, 0x8ed6b37d
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0x92328649
mov ecx, 0x64b5ab13
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0x76845984
mov ecx, 0xb564b5e
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x3980f586
mov ecx, 0x7278c25a
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov eax, 0xad5e5577
mov ecx, 0xefbae318
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xbf40e330
mov ecx, 0x12eac62d
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0x13d23ae1
mov ecx, 0x62352432
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov eax, 0x9db8cf2
mov ecx, 0x7278c207
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
xor eax, eax
lea ecx, [esi + 0x40]
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [ecx + 0x10]
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0xa8], 0xa
lea ecx, [esi + 0x60]
mov dword [esi + 0xc], ecx
lea eax, [esi + 0x20]
push eax
call fcn.10015170
mov eax, dword [esi + 0x70]
mov dword [esi + 8], eax
cmp dword [esi + 0x74], 0x10
jb 0x100baf32
mov eax, dword [esi + 0x60]
mov dword [esi + 0xc], eax
cmp dword [esi + 8], 0
je 0x100bb118
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x100bb11f
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100bb169
mov ecx, 0x811c9dc5
jmp 0x100bafd4
mov ecx, 0x811c9dc5
jmp 0x100bb0ab
mov edi, dword [esi + 0xc]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x10]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100baf7d
cmp dword [esi + 0x14], 0
je 0x100bafd4
add edx, dword [esi + 0x10]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x14], edi
jne 0x100bafc2
mov edx, dword [esi + 0x1c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100bb235
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0xc]
cmp eax, dword [ebx + 0x18]
jne 0x100bb018
cmp dword [ebx + 0x1c], 0x10
jb 0x100bb002
mov eax, dword [ebx + 8]
jmp 0x100bb005
lea eax, [ebx + 8]
push dword [esi + 0xc]
push eax
push dword [esi + 0x10]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100bb025
cmp ebx, edi
je 0x100bb235
mov ebx, dword [ebx + 4]
jmp 0x100bafef
add ebx, 0x20
lea ecx, [esi + 0x60]
call fcn.10015110
mov dword [0x10260738], ebx
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x84]
jmp 0x100ba46c
mov edi, dword [esi + 8]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0xc]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100bb054
cmp dword [esi + 0x10], 0
je 0x100bb0ab
add edx, dword [esi + 0xc]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x10], edi
jne 0x100bb099
mov edx, dword [esi + 0x14]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100bb24c
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x100bb0ef
cmp dword [ebx + 0x1c], 0x10
jb 0x100bb0d9
mov eax, dword [ebx + 8]
jmp 0x100bb0dc
lea eax, [ebx + 8]
push dword [esi + 8]
push eax
push dword [esi + 0xc]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100bb0fc
cmp ebx, edi
je 0x100bb24c
mov ebx, dword [ebx + 4]
jmp 0x100bb0c6
add ebx, 0x20
lea ecx, [esi + 0x60]
call fcn.10015110
mov dword [0x1025af4c], ebx
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
jmp 0x100ba40e
mov ecx, 0x811c9dc5
jmp 0x100bb186
mov edi, dword [esi + 8]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0xc]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100bb12f
cmp dword [esi + 0x10], 0
je 0x100bb186
add edx, dword [esi + 0xc]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x10], edi
jne 0x100bb174
mov edx, dword [esi + 0x18]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100bb263
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x100bb1ca
cmp dword [ebx + 0x1c], 0x10
jb 0x100bb1b4
mov eax, dword [ebx + 8]
jmp 0x100bb1b7
lea eax, [ebx + 8]
push dword [esi + 8]
push eax
push dword [esi + 0xc]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100bb1d7
cmp ebx, edi
je 0x100bb263
mov ebx, dword [ebx + 4]
jmp 0x100bb1a1
add ebx, 0x20
lea ecx, [esi + 0x60]
call fcn.10015110
mov dword [0x10260738], ebx
mov ecx, dword [esi + 0x14]
jmp 0x100ba55d
mov dword [esi + 0xa8], 1
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 + 0xa8], 3
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 + 0xa8], 5
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 + 0xa8], 7
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 + 0xa8], 9
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 + 0xa8], 0xb
push str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
nop word [eax + eax]
push ebp
sub esp, 0xc
lea esi, [ebp - 0xac]
mov ebp, dword [esi + 0x98]
lea ecx, [esi + 0x60]
call fcn.10015110
add esp, 0xc
pop ebp
ret