Function at 0x1015f670
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10320a1d
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x1043900c]
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
cmp byte [ebp + 8], 0
jne 0x1015fc36
cmp byte [0x1060f2b5], 0
je 0x1015fc36
mov eax, dword [0x1060b290]
movss xmm0, dword [0x10611174]
movss xmm1, dword [eax]
comiss xmm0, xmm1
ja 0x1015fc4f
cmp byte [0x104b10e0], 0
addss xmm1, dword [0x1041ee50]
mov edi, dword [0x1060b254]
movss dword [0x10611174], xmm1
jne 0x1015f74b
mov byte [0x104b10e0], 1
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x104b10fc]
xor ebx, dword [0x104b10f8]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
shr ecx, 7
xor ebx, eax
xor edx, ecx
mov ecx, ebx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, bl
xor cl, byte [esi + 0x104b10e1]
mov byte [esi + 0x104b10e1], cl
inc esi
cmp esi, 0x15
jb 0x1015f6f4
push ecx
push 0x104b10f5
push 0x104b10e1
lea ecx, [ebp - 0x28]
call fcn.1001a620
mov dword [ebp - 4], 0
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], 0x10
mov ecx, dword [0x1060b258]
cmovae eax, dword [ebp - 0x28]
push eax
call edi
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
mov esi, eax
call fcn.10019dd0
test esi, esi
je 0x1015fc4f
mov eax, dword [esi + 0x44]
mov ebx, dword [eax + 4]
mov ecx, ebx
mov dword [ebp - 0x48], ebx
mov eax, dword [ebx]
mov eax, dword [eax + 0xc0]
call eax
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x44], eax
test ecx, ecx
jle 0x1015fc4f
nop dword [eax]
mov ecx, dword [ebx]
push eax
mov edx, dword [ecx + 0xc4]
mov ecx, ebx
call edx
mov edi, eax
mov dword [ebp - 0x4c], edi
test edi, edi
je 0x1015fc1c
cmp byte [0x104b1380], 0
jne 0x1015f847
mov byte [0x104b1380], 1
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x104b139c]
xor ebx, dword [0x104b1398]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
shr ecx, 7
xor ebx, eax
xor edx, ecx
mov ecx, ebx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [esi + 0x104b1381]
xor cl, bl
mov byte [esi + 0x104b1381], cl
inc esi
cmp esi, 0x13
jb 0x1015f7f0
push ecx
push 0x104b1393
push 0x104b1381
lea ecx, [ebp - 0x28]
call fcn.1001a620
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], 0x10
mov eax, dword [edi]
cmovae ecx, dword [ebp - 0x28]
push ecx
mov ecx, edi
mov eax, dword [eax + 0x22c]
call eax
mov dword [ebp - 4], 0xffffffff
mov bl, al
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x10
jb 0x1015f8b6
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015f8ac
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015fc30
push ecx
push edx
call fcn.102bb95a
add esp, 8
test bl, bl
je 0x1015fc1c
cmp byte [0x104b12e0], 0
mov eax, dword [0x1060b290]
movss xmm0, dword [eax + 0x10]
movss dword [ebp - 0x50], xmm0
jne 0x1015fb96
mov edi, dword [0x104b12f0]
mov ebx, edi
mov esi, dword [0x104b12f4]
xor ebx, 0x1de26cd5
mov eax, ebx
mov byte [0x104b12e0], 1
mov edx, esi
xor edx, 0xd28f2c5
mov ecx, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b12e1]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b12e1], al
xor ebx, 0x1de26cd4
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b12e2]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b12e2], al
xor ebx, 0x1de26cd7
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b12e3]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b12e3], al
xor ebx, 0x1de26cd6
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor ebx, eax
xor edx, ecx
mov eax, ebx
mov ecx, edx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b12e4]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b12e4], al
xor ebx, 0x1de26cd1
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b12e5]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b12e5], al
xor ebx, 0x1de26cd0
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b12e6]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b12e6], al
xor ebx, 0x1de26cd3
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor al, byte [0x104b12e7]
xor al, bl
mov ebx, edi
xor ebx, 0x1de26cd2
mov byte [0x104b12e7], al
xor edx, 0xd28f2c5
mov eax, ebx
mov ecx, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
xor esi, 0xd28f2c5
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b12e8]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b12e8], al
xor ebx, 0x1de26cdd
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, edi
mov ecx, esi
shl eax, 0x11
xor edx, 0x1de26cdc
xor al, byte [0x104b12e9]
xor al, bl
mov edi, dword [ebp - 0x4c]
mov byte [0x104b12e9], al
mov eax, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor esi, ecx
xor edx, eax
mov ecx, esi
mov eax, edx
shrd eax, ecx, 7
xor edx, eax
shr ecx, 7
xor esi, ecx
mov eax, edx
shld esi, eax, 0x11
shl eax, 0x11
xor al, byte [0x104b12ea]
xor al, dl
mov byte [0x104b12ea], al
push ecx
push 0x104b12ea
push 0x104b12e1
lea ecx, [ebp - 0x40]
call fcn.1001a620
movss xmm0, dword [ebp - 0x50]
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 2
cmp dword [ebp - 0x2c], 0x10
mov eax, dword [edi]
cmovae ecx, dword [ebp - 0x40]
push ecx
movss dword [esp], xmm0
mov eax, dword [eax + 0x480]
push ecx
mov ecx, edi
call eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0x10
jb 0x1015fc0a
mov edx, dword [ebp - 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015fc00
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015fc30
push ecx
push edx
call fcn.102bb95a
add esp, 8
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x44], eax
cmp eax, dword [ebp - 0x54]
jge 0x1015fc4f
mov ebx, dword [ebp - 0x48]
jmp 0x1015f7c0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov eax, dword [0x1060b290]
movss xmm0, dword [eax]
addss xmm0, dword [0x1041ef28]
movss dword [0x10611174], xmm0
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.102bb91c
mov esp, ebp
pop ebp
ret 4