Function at 0x1013ffc0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x408
lea eax, [esp]
lea ecx, [esp + 8]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x430]
push 0
push eax
mov eax, dword [esp + 0x488]
push ecx
mov ecx, dword [esp + 0x428]
push 0x400
lea edx, [edi - 0x100]
push 0x400
push edx
mov edx, dword [0x107ab964]
push eax
push ecx
push edx
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x10140453
cmp dword [esp + 0x10], 0x400
jne 0x10140453
xor edx, edx
xor ebp, ebp
xor esi, esi
mov ecx, 0x100
mov dword [esp + 0x14], esi
mov ebx, 0xffff
cmp edx, 2
jge 0x101400f4
mov eax, edx
sub eax, 0
je 0x1014008f
dec eax
jne 0x101400e7
cmp byte [esp + ecx + 0x18], 0xe8
jne 0x101400e7
cmp word [esp + ecx + 0x1d], 0x458b
jne 0x101400e7
cmp byte [esp + ecx + 0x20], 0x5a
jne 0x101400e7
cmp byte [esp + ecx + 0x21], 0xe8
jne 0x101400e7
cmp byte [esp + ecx + 0x26], 0x6a
jne 0x101400e7
mov eax, dword [esp + ecx + 0x22]
mov edx, 2
add eax, ecx
lea esi, [eax + edi - 0xf2]
jmp 0x101400e7
cmp byte [esp + ecx + 0x18], 0x55
jne 0x101400e7
cmp byte [esp + ecx + 0x19], 0x68
jne 0x101400e7
cmp byte [esp + ecx + 0x1e], 0x64
jne 0x101400e7
cmp byte [esp + ecx + 0x21], 0x64
jne 0x101400e7
cmp byte [esp + ecx + 0x24], 0xe8
jne 0x101400e7
cmp byte [esp + ecx + 0x29], 0xe8
jne 0x101400e7
cmp byte [esp + ecx + 0x2e], 0xe8
jne 0x101400e7
cmp word [esp + ecx + 0x27], bx
jne 0x101400e7
cmp word [esp + ecx + 0x2c], bx
jne 0x101400e7
cmp word [esp + ecx + 0x31], bx
jne 0x101400e7
mov eax, dword [esp + ecx + 0x25]
mov edx, 1
add eax, ecx
lea ebp, [eax + edi - 0xef]
inc ecx
cmp ecx, 0x3e0
jb 0x10140037
cmp edx, 2
mov dword [esp + 0x14], esi
jne 0x10140453
test ebp, ebp
je 0x10140453
test esi, esi
je 0x10140453
mov eax, dword [esp + 0x458]
cmp eax, ebp
jb 0x10140453
cmp eax, esi
jb 0x10140453
xor esi, esi
cmp ebp, edi
jae 0x10140144
lea ecx, [edi - 0x100]
cmp ebp, ecx
jbe 0x10140144
mov esi, ebp
sub esi, edi
add esi, 0x100
jmp 0x1014018f
mov ecx, dword [esp + 0x480]
lea edx, [esp + 0x10]
push 0
lea eax, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x424]
push eax
mov eax, dword [0x107ab964]
push 0x400
push 0x400
push ebp
push ecx
push edx
push eax
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x10140453
cmp dword [esp + 0x10], 0x400
jne 0x10140453
xor ecx, ecx
xor bl, bl
xor edx, edx
cmp esi, 0x100
jge 0x10140453
cmp ecx, 3
jge 0x10140213
mov eax, ecx
sub eax, 0
je 0x101401ea
dec eax
je 0x101401d6
dec eax
jne 0x10140207
cmp word [esp + esi + 0x18], 0xfb81
jne 0x10140207
cmp byte [esp + esi + 0x1e], 0x75
jne 0x10140207
mov eax, dword [esp + esi + 0x1a]
cmp eax, ebp
jbe 0x10140207
sub eax, ebp
mov ecx, 3
mov edx, eax
jmp 0x10140207
cmp word [esp + esi + 0x18], 0x3380
jne 0x10140207
mov bl, byte [esp + esi + 0x1a]
mov ecx, 2
jmp 0x10140207
cmp byte [esp + esi + 0x18], 0xbb
jne 0x10140207
mov eax, dword [esp + esi + 0x19]
mov edi, dword [esp + 0x43c]
cmp edi, eax
jae 0x10140207
mov ecx, 1
mov ebp, eax
inc esi
cmp esi, 0x100
jl 0x101401a1
cmp ecx, 3
jne 0x10140453
test bl, bl
je 0x10140453
test edx, edx
je 0x10140453
cmp edx, 0x400
jb 0x10140453
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x43c]
add eax, ecx
cmp ebp, eax
jbe 0x10140250
add edx, ebp
cmp edx, eax
jb 0x10140453
lea edx, [esp + 0x10]
push 0
lea eax, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x424]
push eax
mov eax, dword [0x107ab964]
push 0x400
push 0x400
push ecx
mov ecx, dword [esp + 0x498]
push ecx
push edx
push eax
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x10140453
cmp dword [esp + 0x10], 0x400
jne 0x10140453
xor eax, eax
mov cl, byte [esp + eax + 0x18]
xor cl, bl
mov byte [esp + eax + 0x18], cl
inc eax
cmp eax, 0x3f0
jb 0x1014029d
mov edi, dword [esp + 0x490]
mov ebp, dword [esp + 0x48c]
mov esi, dword [esp + 0x484]
xor ecx, ecx
xor edx, edx
mov ebx, 0xffff
cmp ecx, 6
jge 0x10140440
cmp ecx, 5
ja case.default.0x101402df
jmp dword [ecx*4 + 0x10140460]
cmp word [esp + edx + 0x18], 0x26a
jne case.default.0x101402df
cmp word [esp + edx + 0x1a], 0x6a
jne case.default.0x101402df
cmp byte [esp + edx + 0x1c], 0x68
jne case.default.0x101402df
cmp word [esp + edx + 0x1f], bx
jne case.default.0x101402df
cmp byte [esp + edx + 0x21], 0x53
jne case.default.0x101402df
cmp byte [esp + edx + 0x22], 0xe8
jne case.default.0x101402df
cmp word [esp + edx + 0x25], bx
jne case.default.0x101402df
test edi, edi
mov ecx, 1
je case.default.0x101402df
mov eax, dword [esp + edx + 0x1d]
mov dword [edi], eax
jmp case.default.0x101402df
cmp word [esp + edx + 0x18], 0x6850
jne case.default.0x101402df
mov eax, dword [esp + edx + 0x1a]
cmp eax, 0x400
jbe case.default.0x101402df
cmp word [esp + edx + 0x1e], 0x858d
jne case.default.0x101402df
cmp word [esp + edx + 0x24], 0x5350
jne case.default.0x101402df
cmp byte [esp + edx + 0x26], 0xe8
jne case.default.0x101402df
cmp word [esp + edx + 0x29], bx
jne case.default.0x101402df
test ebp, ebp
mov ecx, 2
je case.default.0x101402df
mov dword [ebp], eax
jmp case.default.0x101402df
cmp byte [esp + edx + 0x18], 0xba
jne case.default.0x101402df
mov eax, dword [esp + edx + 0x19]
cmp eax, 0x100
jae case.default.0x101402df
test esi, esi
mov ecx, 3
je case.default.0x101402df
mov byte [esi], al
jmp case.default.0x101402df
cmp word [esp + edx + 0x18], 0xca8b
jne case.default.0x101402df
mov ecx, 4
jmp case.default.0x101402df
cmp word [esp + edx + 0x18], 0xc180
jne case.default.0x101402df
cmp word [esp + edx + 0x1b], 0x830
jne case.default.0x101402df
test esi, esi
mov ecx, 5
je case.default.0x101402df
mov al, byte [esp + edx + 0x1a]
add byte [esi], al
jmp case.default.0x101402df
cmp word [esp + edx + 0x18], 0xfa81
jne case.default.0x101402df
mov eax, dword [esp + edx + 0x1a]
cmp eax, 0x1000
jae case.default.0x101402df
cmp byte [esp + edx + 0x1e], 0x75
jne case.default.0x101402df
mov ebx, dword [esp + 0x488]
mov ecx, 6
test ebx, ebx
je 0x1014042e
mov dword [ebx], eax
mov ebx, 0xffff
inc edx
cmp edx, 0x3d0
jb 0x101402cd
xor eax, eax
pop edi
cmp ecx, 6
pop esi
pop ebp
pop ebx
sete al
add esp, 0x408
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x408
ret