Function at 0x1001601d
Capabilities:
Encode data using xor

Disassembly:
push 0x5c
mov eax, 0x1003f463
call fcn.1003dd61
mov esi, ecx
xor ebx, ebx
push 0x3c
pop edi
cmp byte [esi + 0x20], bl
je 0x100161d2
mov ecx, dword [esi + 0x24]
test ecx, ecx
jle 0x10016046
dec ecx
mov dword [esi + 0x24], ecx
test ecx, ecx
js 0x100161c7
mov eax, ecx
mov ebx, 0xe10
cdq
idiv ebx
push 0xf
mov eax, edx
cdq
idiv edi
mov ebx, eax
mov eax, ecx
cdq
idiv edi
xor eax, eax
lea edi, [ebp - 0x28]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
pop edi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edi
mov byte [ebp - 0x28], al
mov dword [ebp - 4], eax
push edx
push ebx
cmp ebx, 0xa
jae 0x100160d7
xor ebx, ebx
mov eax, ebx
cmp edx, 0xa
jae 0x100160b3
mov cl, 0x6f
mov dword [ebp - 0x34], 0xb4a5f6f
mov dword [ebp - 0x30], 0xb4a5f55
mov byte [ebp - 0x2c], bl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x100160ae
mov cl, byte [ebp - 0x34]
jmp 0x1001609f
mov byte [ebp - 0x2c], bl
jmp 0x10016123
mov cl, 0x2e
mov dword [ebp - 0x34], 0x4a0b1e2e
mov dword [ebp - 0x30], 0x4a0b14
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x100160d2
mov cl, byte [ebp - 0x34]
jmp 0x100160c3
mov byte [ebp - 0x2d], bl
jmp 0x10016123
xor ebx, ebx
mov eax, ebx
cmp edx, 0xa
jae 0x100160ff
mov cl, 0x4e
mov dword [ebp - 0x34], 0x742a6b4e
mov dword [ebp - 0x30], 0x2a6b7e
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x100160d2
mov cl, byte [ebp - 0x34]
jmp 0x100160f0
mov cl, 0x72
mov dword [ebp - 0x34], 0x48165772
mov word [ebp - 0x30], 0x1657
mov byte [ebp - 0x2e], bl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 5
jae 0x10016120
mov cl, byte [ebp - 0x34]
jmp 0x10016111
mov byte [ebp - 0x2e], bl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.10003d99
lea eax, [ebp - 0x50]
push eax
call fcn.100039e2
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10008b20
lea ecx, [ebp - 0x50]
call fcn.10003b97
cmp dword [ebp - 0x14], edi
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [str.tSFICNI__asNJB]
mov ecx, ebx
cmova eax, dword [ebp - 0x28]
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x7a54027c
mov byte [ebp - 0x3c], bl
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x13
jb 0x10016170
sub esp, 0x18
mov byte [ebp - 0x3c], bl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10003d99
lea eax, [ebp - 0x68]
push eax
call fcn.100039e2
add esp, 0x20
mov byte [ebp - 4], 1
mov edx, eax
mov ecx, dword [esi + 8]
call fcn.1000d720
lea ecx, [ebp - 0x68]
call fcn.10003b97
or dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, edi
jbe 0x100161c4
mov ecx, dword [ebp - 0x28]
inc edx
call fcn.10003b6a
push 0x3c
pop edi
cmp dword [esi + 0x24], ebx
jg 0x100161d2
mov byte [esi + 0x20], bl
mov dword [esi + 0x24], ebx
cmp byte [esi + 0x21], 0
je 0x10016395
movzx eax, word [esi + 0x28]
mov ecx, eax
test ax, ax
jle 0x100161ef
dec eax
mov word [esi + 0x28], ax
movzx ecx, ax
test cx, cx
js 0x10016386
movsx ecx, cx
mov ebx, 0xe10
mov eax, ecx
cdq
idiv ebx
mov eax, edx
cdq
idiv edi
movzx ebx, ax
mov eax, ecx
cdq
idiv edi
xor eax, eax
lea edi, [ebp - 0x28]
stosd dword es:[edi], eax
movzx edx, dx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], al
push 0xa
pop edi
mov dword [ebp - 4], 2
cmp bx, di
jae 0x1001626e
cmp dx, di
jae 0x1001626e
push edx
push ebx
xor ebx, ebx
mov dword [ebp - 0x34], 0x14554070
mov cl, 0x70
mov dword [ebp - 0x30], 0x1455404a
mov byte [ebp - 0x2c], bl
mov eax, ebx
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x10016269
mov cl, byte [ebp - 0x34]
jmp 0x1001625a
mov byte [ebp - 0x2c], bl
jmp 0x100162ed
mov eax, edx
mov ecx, ebx
push eax
push ecx
cmp bx, di
jae 0x100162a1
xor ebx, ebx
mov dword [ebp - 0x34], 0x3a7b6e5e
mov cl, 0x5e
mov dword [ebp - 0x30], 0x3a7b64
mov eax, ebx
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1001629c
mov cl, byte [ebp - 0x34]
jmp 0x1001628d
mov byte [ebp - 0x2d], bl
jmp 0x100162ed
xor ebx, ebx
mov eax, ebx
cmp dx, di
jae 0x100162c9
mov cl, 0xf
mov dword [ebp - 0x34], 0x356b2a0f
mov dword [ebp - 0x30], 0x6b2a3f
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1001629c
mov cl, byte [ebp - 0x34]
jmp 0x100162ba
mov cl, 0x46
mov dword [ebp - 0x34], 0x7c226346
mov word [ebp - 0x30], 0x2263
mov byte [ebp - 0x2e], bl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 5
jae 0x100162ea
mov cl, byte [ebp - 0x34]
jmp 0x100162db
mov byte [ebp - 0x2e], bl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.10003d99
lea eax, [ebp - 0x68]
push eax
call fcn.100039e2
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10008b20
lea ecx, [ebp - 0x68]
call fcn.10003b97
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [str._nYQ_URUR_]
mov ecx, ebx
cmova eax, dword [ebp - 0x28]
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x4f19671c
mov word [ebp - 0x3c], 0x61
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x14
jb 0x1001633e
sub esp, 0x18
mov byte [ebp - 0x3b], bl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10003d99
lea eax, [ebp - 0x68]
push eax
call fcn.100039e2
add esp, 0x20
mov byte [ebp - 4], 3
mov edx, eax
mov ecx, dword [esi + 0xc]
call fcn.1000d720
lea ecx, [ebp - 0x68]
call fcn.10003b97
lea ecx, [ebp - 0x28]
call fcn.10003b97
cmp word [esi + 0x28], bx
jg 0x10016395
xor eax, eax
mov byte [esi + 0x21], bl
mov word [esi + 0x28], ax
call fcn.1003dd1f
ret