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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100eeb0d
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x100ff040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x10147898]
mov esi, dword [0x1010f6ec]
mov dword [ebp - 0x44], esi
test al, 1
jne 0x100da6fb
or eax, 1
mov dword [0x10147898], eax
mov eax, dword [0x10141a34]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x100da6e6
mov ebx, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [ebx + ecx], 0
jne 0x100da6b0
xor edx, edx
test ecx, ecx
je 0x100da6dc
nop dword [eax]
movsx eax, byte [ebx + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100da6c0
cmp edi, 0x90f473ab
je 0x100da6f0
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x100da6a4
xor edx, edx
mov dword [0x101478a4], edx
jmp 0x100da701
mov edx, dword [ebp - 0x2c]
mov dword [0x101478a4], edx
jmp 0x100da701
mov edx, dword [0x101478a4]
cmp byte [0x101068a4], 0
je 0x100da72b
mov ecx, dword [0x10141ca8]
mov eax, dword [0x100ff0ac]
add ecx, 0xffffffb7
xor ecx, 0xd719438c
cmp byte [ecx + eax], 0
jne 0x100da72b
mov ecx, 3
jmp 0x100da72d
xor ecx, ecx
mov eax, dword [edx]
push ecx
mov ecx, edx
mov eax, dword [eax + 0x40]
call eax
cmp byte [0x1010f25c], 0
je 0x100daeaf
mov eax, dword [0x10141a94]
movss xmm1, dword [eax + 0x10]
comiss xmm1, dword [0x10146ee8]
ja 0x100daeaf
movss xmm2, dword [0x10146eec]
xorps xmm0, xmm0
comiss xmm0, xmm2
jae 0x100daeaf
subss xmm1, dword [0x10146ee4]
movss xmm0, dword [0x100f3e34]
mov ecx, dword [0x10141a44]
mov word [ebp - 0x2c], 0xc8c8
mov byte [ebp - 0x2a], 0xc8
divss xmm1, xmm2
subss xmm0, xmm1
mulss xmm0, dword [0x100f3fc0]
cvttss2si eax, xmm0
mov byte [ebp - 0x29], al
push dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
mov eax, dword [0x100ff4dc]
cdq
sub eax, edx
mov esi, eax
mov eax, dword [0x100ff4d8]
cdq
sub eax, edx
sar esi, 1
mov edx, dword [ecx]
mov ebx, eax
sar ebx, 1
mov dword [ebp - 0x38], esi
lea edi, [esi + 6]
mov dword [ebp - 0x34], ebx
mov edx, dword [edx + 0x38]
lea esi, [ebx + 6]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x5c], esi
call edx
mov ecx, dword [0x10141a44]
lea edx, [edi + 1]
push edx
lea esi, [ebx + 6]
lea edx, [esi + 1]
mov eax, dword [ecx]
push edx
push edi
push esi
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x10141a44]
lea esi, [ebx + 7]
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x38]
mov byte [ebp - 0x29], al
add edi, 7
mov eax, dword [ecx]
mov word [ebp - 0x2c], 0xc8c8
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x60], esi
call eax
mov ecx, dword [0x10141a44]
lea edx, [edi + 1]
push edx
lea esi, [ebx + 7]
lea edx, [esi + 1]
mov eax, dword [ecx]
push edx
push edi
push esi
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x10141a44]
lea esi, [ebx + 8]
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x38]
mov byte [ebp - 0x29], al
add edi, 8
mov eax, dword [ecx]
mov word [ebp - 0x2c], 0xc8c8
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x64], esi
call eax
mov ecx, dword [0x10141a44]
lea edx, [edi + 1]
push edx
lea esi, [ebx + 8]
lea edx, [esi + 1]
mov eax, dword [ecx]
push edx
push edi
push esi
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x10141a44]
lea esi, [ebx + 9]
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x38]
mov byte [ebp - 0x29], al
add edi, 9
mov eax, dword [ecx]
mov word [ebp - 0x2c], 0xc8c8
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x68], esi
call eax
mov ecx, dword [0x10141a44]
lea edx, [edi + 1]
push edx
lea esi, [ebx + 9]
lea edx, [esi + 1]
mov eax, dword [ecx]
push edx
push edi
push esi
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x10141a44]
lea esi, [ebx + 0xa]
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x38]
mov byte [ebp - 0x29], al
add edi, 0xa
mov eax, dword [ecx]
mov word [ebp - 0x2c], 0xc8c8
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x50], esi
call eax
mov ecx, dword [0x10141a44]
lea edx, [edi + 1]
push edx
lea esi, [ebx + 0xa]
lea edx, [esi + 1]
mov eax, dword [ecx]
push edx
push edi
push esi
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x10141a44]
add ebx, 0xfffffffa
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x38]
mov byte [ebp - 0x29], al
add esi, 0xfffffffa
mov eax, dword [ecx]
mov word [ebp - 0x2c], 0xc8c8
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x10141a44]
lea edi, [esi + 1]
push edi
lea edx, [ebx + 1]
push edx
mov eax, dword [ecx]
push esi
mov eax, dword [eax + 0x40]
push ebx
call eax
mov ecx, dword [0x10141a44]
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x34]
mov byte [ebp - 0x29], al
add ebx, 0xfffffff9
mov eax, dword [ecx]
mov word [ebp - 0x2c], 0xc8c8
lea edi, [esi - 6]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x10141a44]
lea edx, [ebx + 1]
push edi
push edx
lea edx, [esi - 7]
mov eax, dword [ecx]
push edx
push ebx
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x10141a44]
lea edi, [esi - 7]
mov eax, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x34]
mov byte [ebp - 0x29], al
add ebx, 0xfffffff8
mov eax, dword [ecx]
mov word [ebp - 0x2c], 0xc8c8
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x10141a44]
lea edx, [ebx + 1]
push edi
push edx
lea edx, [esi - 8]
mov eax, dword [ecx]
push edx
push ebx
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x10141a44]
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x34]
mov byte [ebp - 0x29], al
add edi, 0xfffffff7
mov eax, dword [ecx]
mov word [ebp - 0x2c], 0xc8c8
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x10141a44]
lea edx, [esi - 8]
push edx
lea ebx, [edi + 1]
push ebx
mov eax, dword [ecx]
lea edx, [esi - 9]
push edx
push edi
mov eax, dword [eax + 0x40]
call eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [0x10141a44]
mov edi, dword [ebp - 0x34]
mov byte [ebp - 0x29], al
add edi, 0xfffffff7
lea eax, [esi - 0xa]
mov word [ebp - 0x2c], 0xc8c8
mov dword [ebp - 0x48], eax
mov eax, dword [ecx]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x10141a44]
mov edx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x34]
inc edx
push edx
mov eax, dword [ecx]
push edi
push dword [ebp - 0x48]
lea edx, [esi - 0xa]
mov eax, dword [eax + 0x40]
push edx
call eax
mov ecx, dword [0x10141a44]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x29], al
mov word [ebp - 0x2c], 0xc8c8
mov eax, dword [ecx]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x10141a44]
lea edx, [esi - 5]
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x4c]
inc ecx
push ecx
mov eax, dword [eax + 0x40]
mov ecx, dword [0x10141a44]
push edx
push dword [ebp - 0x4c]
mov edx, esi
add edx, 0xfffffffa
push edx
call eax
mov ecx, dword [0x10141a44]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x29], al
mov word [ebp - 0x2c], 0xc8c8
mov eax, dword [ecx]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x10141a44]
mov edx, esi
add edx, 0xfffffffa
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x3c]
inc ecx
push ecx
mov eax, dword [eax + 0x40]
mov ecx, dword [0x10141a44]
push edx
push dword [ebp - 0x3c]
mov edx, esi
add edx, 0xfffffff9
push edx
call eax
mov ecx, dword [0x10141a44]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x29], al
mov word [ebp - 0x2c], 0xc8c8
mov eax, dword [ecx]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x10141a44]
mov edx, esi
add edx, 0xfffffff9
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x40]
inc ecx
push ecx
mov eax, dword [eax + 0x40]
push edx
push dword [ebp - 0x40]
mov edx, esi
add edx, 0xfffffff8
mov ecx, dword [0x10141a44]
push edx
call eax
mov ecx, dword [0x10141a44]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x29], al
mov word [ebp - 0x2c], 0xc8c8
mov eax, dword [ecx]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov esi, dword [ebp - 0x54]
mov ecx, dword [0x10141a44]
lea edx, [esi + 1]
mov eax, dword [ecx]
push edx
push ebx
mov ebx, dword [ebp - 0x34]
mov eax, dword [eax + 0x40]
push esi
lea edx, [ebx - 9]
push edx
call eax
mov ecx, dword [0x10141a44]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x29], al
mov word [ebp - 0x2c], 0xc8c8
mov eax, dword [ecx]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov esi, dword [ebp - 0x58]
mov ecx, dword [0x10141a44]
lea edx, [esi + 1]
mov eax, dword [ecx]
push edx
push edi
push esi
mov eax, dword [eax + 0x40]
lea edx, [ebx - 0xa]
push edx
call eax
mov ecx, dword [0x10141a44]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x29], al
mov word [ebp - 0x2c], 0xc8c8
mov eax, dword [ecx]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov edi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x5c]
mov ecx, dword [0x10141a44]
lea esi, [edi - 6]
lea edx, [esi + 1]
mov eax, dword [ecx]
push edx
lea edx, [ebx + 1]
push edx
mov eax, dword [eax + 0x40]
push esi
push ebx
call eax
mov ecx, dword [0x10141a44]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x29], al
mov word [ebp - 0x2c], 0xc8c8
mov eax, dword [ecx]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x10141a44]
lea ebx, [edi - 7]
lea edx, [ebx + 1]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
mov esi, dword [ebp - 0x60]
lea edx, [esi + 1]
push edx
push ebx
push esi
call eax
mov ecx, dword [0x10141a44]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x29], al
mov word [ebp - 0x2c], 0xc8c8
mov eax, dword [ecx]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov esi, dword [ebp - 0x64]
lea ebx, [edi - 8]
mov ecx, dword [0x10141a44]
lea edx, [ebx + 1]
push edx
lea edx, [esi + 1]
mov eax, dword [ecx]
push edx
push ebx
push esi
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x10141a44]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x29], al
mov word [ebp - 0x2c], 0xc8c8
mov eax, dword [ecx]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov esi, dword [ebp - 0x68]
lea ebx, [edi - 9]
mov ecx, dword [0x10141a44]
lea edx, [ebx + 1]
push edx
lea edx, [esi + 1]
mov eax, dword [ecx]
push edx
push ebx
push esi
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x10141a44]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x29], al
mov word [ebp - 0x2c], 0xc8c8
mov eax, dword [ecx]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x50]
mov ecx, dword [0x10141a44]
lea edx, [ebx + 1]
push edx
mov eax, dword [ecx]
lea edx, [esi + 1]
push edx
push ebx
push esi
mov eax, dword [eax + 0x40]
call eax
push 0x10142748
lea edx, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0xa6925
lea ecx, [ebp - 0x28]
call fcn.100e26b0
add esp, 4
mov dword [ebp - 4], 0
mov edx, 1
mov eax, dword [0x10141a94]
mov dword [ebp - 0x3c], edx
cmp dword [eax + 0x18], edx
mov esi, dword [ebp - 0x44]
jl 0x100dae79
nop
mov ecx, dword [0x10141a3c]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov edx, 0x10142774
mov ecx, 0x1014275c
call fcn.100d4e30
test al, al
je 0x100dae64
mov edx, 0x1014277c
mov ecx, 0x10142768
call fcn.100d4e30
test al, al
je 0x100dae64
movss xmm3, dword [0x10142778]
movaps xmm0, xmm3
subss xmm0, dword [0x10142780]
cvttss2si eax, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movaps xmm0, xmm2
subss xmm3, xmm2
mulss xmm0, dword [0x100f3df4]
cvttss2si eax, xmm0
movss xmm0, dword [0x10142774]
mov dword [ebp - 0x44], eax
cvttss2si ebx, xmm3
movd xmm1, eax
cvtdq2ps xmm1, xmm1
cdq
sub eax, edx
mov edi, eax
mov al, byte [0x1014274d]
sar edi, 1
mulss xmm1, dword [0x100f3df4]
subss xmm0, xmm1
cvttss2si ecx, xmm0
mov dword [ebp - 0x40], ecx
test al, al
jne 0x100dadec
push 2
lea eax, [ebp - 0x28]
push eax
mov eax, ebx
sub eax, dword [0x101445b0]
push esi
sub eax, 0xa
push eax
lea eax, [ecx + edi]
mov ecx, 0x101445a8
push eax
call fcn.100d5a40
mov al, byte [0x1014274d]
cmp al, 1
jne 0x100dae32
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x28]
mov ecx, ebx
sub ecx, dword [0x101445b0]
push 2
push eax
sub ecx, 0xa
push ecx
mov eax, esp
mov word [eax], 0xff
mov byte [eax + 2], 0
mov byte [eax + 3], dl
mov eax, dword [ebp - 0x44]
mov edi, eax
test edi, edi
jns 0x100dae1f
add edi, 1
sar edi, 1
mov eax, dword [ebp - 0x40]
push ecx
add eax, edi
mov ecx, 0x101445a8
push eax
call fcn.100d5a40
sub ebx, dword [0x101445b0]
lea eax, [ebp - 0x28]
push 2
push eax
push ecx
mov ecx, dword [ebp - 0x30]
mov eax, esp
sub ebx, 0xa
push ebx
mov byte [eax + 3], cl
mov ecx, 0x101445a8
mov word [eax], 0xff
mov byte [eax + 2], 0
mov eax, dword [ebp - 0x40]
add eax, edi
push eax
call fcn.100d5a40
mov edx, dword [ebp - 0x3c]
mov eax, dword [0x10141a94]
inc edx
mov dword [ebp - 0x3c], edx
cmp edx, dword [eax + 0x18]
jle 0x100dad20
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xf
jbe 0x100daeaf
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100daea5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100daea5
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100e50a7
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100e4c2c
mov esp, ebp
pop ebp
ret