Function at 0x1000cb92
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x100589f4
call fcn.10057d24
sub esp, 0xd4
cmp byte [ebp + 8], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov edi, edx
mov esi, ecx
je 0x1000cca4
mov dword [ebp - 0x18], 0x6860
xor ebx, ebx
cmp dword [ebp - 0x18], 0x69cf
jle 0x1000cc06
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x14], ebx
mov ebx, esi
mov esi, 0x5f62
mov eax, ebx
mov ecx, 0x10073b38
xor eax, edi
cdq
push edx
push eax
call fcn.10004192
dec ebx
dec esi
jne 0x1000cbd6
mov esi, dword [ebp - 0x14]
inc esi
mov dword [ebp - 0x14], esi
cmp esi, 0x787f
jl 0x1000cbcf
inc edi
push 0
pop ebx
cmp edi, 0x65c3
jl 0x1000cbca
cmp byte [ebp + 0x14], 0
je 0x1000cc13
mov eax, dword [ebp + 0xc]
mov dword [eax], ebx
jmp 0x1000cc6a
mov esi, dword [ebp + 0x1c]
mov eax, dword [esi]
mov dword [eax + 4], 4
jmp 0x1000cc62
mov dword [ebp - 0x28], 9
mov dword [ebp - 0x28], 0xffffffe9
jmp 0x1000cc57
push 1
lea eax, [ebp - 0x28]
mov dword [ebp - 0x6c], 0xc79e672c
push eax
lea eax, [ebp - 0x6c]
mov ecx, 0x2f48
push eax
push 0x751b
call fcn.10009880
add esp, 0x10
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x11
jg 0x1000cc31
mov eax, dword [esi]
inc dword [eax + 4]
mov eax, dword [esi]
cmp dword [eax + 4], 0xc
jle 0x1000cc21
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x18], 0x65be
jge 0x1000cc85
mov edx, str.jgfqpp_kltfsmks_gzjy_qyu_whet_cmg_vetdjoh_lplvnsup
mov ecx, 0x10073b38
call fcn.10005a51
jmp 0x1000d24d
cmp byte [ebp + 0x10], 0
je 0x1000d1ff
mov edx, 0x5be2
call fcn.10009e00
xor ebx, ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov eax, dword [ebp + 0x20]
mov dword [ebp - 4], 2
cmp dword [edi + 0x14], 8
mov edx, dword [edi + 0x10]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x18], ecx
jb 0x1000cce3
mov ecx, dword [edi]
jmp 0x1000cce5
mov ecx, edi
push edx
push ebx
push ecx
mov ecx, eax
call fcn.10004572
mov esi, ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x34], esi
cmp esi, dword [ebp - 0x18]
jae 0x1000cf99
push 0x5d7
mov edx, 0x32a8
call fcn.1000a111
mov eax, dword [ebp - 0x14]
pop ecx
cmp eax, 0xffffffff
je 0x1000ce19
cmp eax, esi
je 0x1000cde7
mov dword [ebp - 0x64], 9
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x58], 0x77b568be
mov dword [ebp - 0x68], 1
mov dword [ebp - 0x5c], 0xffff
push 3
call fcn.100013fd
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0xa4]
mov dword [ebp - 0x60], 0x9cea445a
push eax
push ebx
xor dl, dl
mov ecx, 0x2bea
call fcn.10009973
lea eax, [ebp - 0x90]
mov edx, 0x668e
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x5c]
push eax
push 0x47f5
lea eax, [ebp - 0x60]
push ebx
push eax
lea ecx, [ebp - 0x58]
call fcn.1000991c
add esp, 0x28
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x90]
call fcn.10001439
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 0x20]
sub eax, esi
push eax
push esi
lea eax, [ebp - 0xe0]
push eax
call fcn.1000dd5b
push eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 5
call fcn.1000de1b
push ebx
push 1
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 2
call fcn.100016dd
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x2c]
add esi, eax
cmp dword [edi + 0x14], 8
mov dword [ebp - 0x34], esi
jb 0x1000cdf9
mov eax, dword [edi]
jmp 0x1000cdfb
mov eax, edi
push dword [edi + 0x10]
mov ecx, dword [ebp + 0x20]
push esi
push eax
call fcn.10004572
mov dword [ebp - 0x14], eax
cmp esi, 0xffffffff
jne 0x1000ccf7
jmp 0x1000cf99
push dword [ebp + 0x20]
lea eax, [ebp - 0x34]
push ecx
push eax
lea ecx, [ebp - 0x54]
call fcn.10009c09
add esp, 0xc
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x78]
push 4
call fcn.100013fd
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x78]
mov dword [ebp - 0x20], 4
push eax
push 0x25bb
push 0x613e
push 0x3dd
push 0x60c8
push 0x375e
push 0x304c
push 0x2862
push 0x5c1a
push ebx
push 1
push 1
mov edx, 0x269c
mov ecx, 0x1773
call fcn.1000bbed
push 0x7120
push 0x36ec
mov byte [ebp + 0xb], bl
lea ecx, [ebp + 0xb]
push ebx
mov dl, 1
call fcn.10009973
add esp, 0x40
mov dword [ebp - 0x18], ebx
jmp 0x1000cf83
mov dword [ebp - 0x1c], 0xfffffffd
mov dword [ebp - 0x14], ebx
jmp 0x1000cecb
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xc8], 0x14af12a8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1000ceba
mov dword [ebp - 0x1c], ebx
jmp 0x1000cf61
push 0x30e5
mov ecx, 0x6409
call fcn.100099ba
mov edi, dword [ebp - 0x1c]
xor edx, edx
pop ecx
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x78]
cmp dword [eax + ecx*4], 0x3f02
mov eax, dword [ebp - 0x1c]
setge dl
sub edx, 6
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
add eax, 0x9691
cmp eax, edx
mov eax, dword [ebp - 0x18]
setle cl
cmp ecx, 1
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x78]
setle cl
xor edx, edx
cmp ecx, 0xfffffffd
setne dl
xor ecx, ecx
cmp edx, dword [eax + esi*4]
mov edx, dword [eax + edi*4]
mov eax, dword [ebp - 0x1c]
setl cl
sub edx, ecx
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x1c]
sete cl
mov dword [ebp - 0x2c], ecx
xor ecx, ecx
cmp dword [ebp - 0x2c], eax
setne cl
mov dword [ebp - 0xc0], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jle 0x1000ced9
lea eax, [ebp - 0x1c]
mov ecx, 0x2770
push eax
push 0x90
call fcn.1000c69d
dec dword [ebp - 0x18]
pop ecx
pop ecx
cmp dword [ebp - 0x18], 0xfffffff7
jne 0x1000ceae
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 2
call fcn.10001439
mov dword [ebp - 0x18], 0x60477862
mov dword [ebp - 0x30], 0xfb49a5c1
mov dword [ebp - 0x14], 0xfffb
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x1000cfcb
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x3c], 0xfffffffb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x1000cfbd
mov dword [ebp - 0x18], 3
jmp 0x1000d12c
push dword [ebp + 8]
movdqa xmm0, xmmword [0x10066a20]
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0xbc]
mov dword [ebp - 0x14], 3
push eax
push ebx
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x48], ebx
movdqu xmmword [ebp - 0xbc], xmm0
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
call fcn.1000619c
push 2
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 6
call fcn.100013fd
xor eax, eax
mov byte [ebp - 4], 7
inc eax
lea ecx, [ebp - 0x84]
push ebx
push eax
push 0x2510
push ecx
mov dword [ebp - 0x38], eax
lea edx, [ebp - 0xac]
push 0x40a9
mov cl, al
call fcn.100097aa
mov eax, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x18]
inc edx
add esp, 0x14
cmp dword [ebp - 0x14], edx
jge 0x1000d0d7
mov dword [ebp - 0x14], 0x3d6c
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x20], 0x5487972e
mov dword [ebp - 0x20], 0xfffffff9
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x48]
setge cl
mov dword [eax], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], 0x4f823aaf
mov eax, dword [ebp - 0x18]
cmp eax, 0x3b06d9e9
setge cl
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x18], edx
mov ecx, dword [ebp - 0x84]
sbb eax, eax
xor edx, edx
inc eax
cmp eax, dword [ecx]
setg dl
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0x38]
imul eax, edx
mov dword [ebp - 0x20], eax
jmp 0x1000d10b
cmp dword [ebp - 0x30], ebx
jne 0x1000d138
lea eax, [ebp - 0x38]
push eax
push 0x3e5f
push 0x7d7f
push 0x2d55
lea eax, [ebp - 0x48]
push eax
push edx
push ebx
push 0x1840
push ebx
mov edx, 0x3a26
lea ecx, [ebp - 0x30]
call fcn.1000cb92
add esp, 0x24
push ecx
call fcn.10009953
pop ecx
lea ecx, [ebp - 0x84]
call fcn.10001439
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 2
call fcn.10001439
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffee
jge 0x1000cfdd
jmp 0x1000d14f
lea ecx, [ebp - 0x84]
call fcn.10001439
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 2
call fcn.10001439
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x1000d1e9
push 2
lea ecx, [ebp - 0x9c]
call fcn.100013fd
lea eax, [ebp - 0xa8]
mov byte [ebp - 4], 8
push eax
push 0x3d3e
mov dword [ebp - 0x20], 0x6cb
lea edx, [ebp - 0x9c]
push 0x68af
xor cl, cl
call fcn.10009866
mov eax, dword [ebp - 0x18]
add esp, 0xc
mov ecx, dword [ebp + eax*4 - 0x3c]
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x3c], ecx
mov dword [ebp - 0x14], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
sub eax, 0x1030c6a8
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 4], 1
setg cl
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 2
call fcn.10001439
dec dword [ebp - 0x18]
jns 0x1000d15b
mov ecx, dword [ebp + 0x24]
lea eax, [ebp - 0x54]
push eax
call fcn.1000de8b
lea ecx, [ebp - 0x54]
call fcn.1000e354
jmp 0x1000d24d
mov edi, dword [ebp + 0x28]
xor ebx, ebx
mov dword [edi], ebx
jmp 0x1000d248
mov dword [ebp - 0x20], 0x84b505d0
mov dword [esi], ebx
cmp dword [esi], 3
jg 0x1000d22c
mov edi, dword [ebp + 0x18]
mov ecx, dword [esi]
mov eax, dword [edi]
mov dword [eax], ecx
mov dword [ebp - 0x20], ecx
inc dword [esi]
cmp dword [esi], 3
jle 0x1000d219
mov edi, dword [ebp + 0x28]
lea eax, [ebp - 0x21]
mov byte [ebp - 0x21], bl
push 0x591
push eax
mov edx, 0x18b9
xor cl, cl
call fcn.1000c9f8
inc dword [edi]
pop ecx
pop ecx
cmp dword [edi], 3
jle 0x1000d208
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret