Function at 0x1002a729
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x100621a4
call fcn.10060f20
sub esp, 0xf4
mov byte [ebp - 0x60], dl
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test dl, dl
je 0x1002ad33
mov dword [ebp - 0x18], 5
xor ebx, ebx
mov dword [ebp - 0x24], 0x901516ea
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x1c], 0x9c2d
mov dword [ebp - 0x38], 0xfffa
mov dword [ebp - 0x14], ebx
jmp 0x1002a782
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x78], 0x41b3c692
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1002a774
mov dword [ebp - 0x18], 2
cmp dword [ebp - 0x18], ebx
jl 0x1002a87e
mov dword [ebp - 0x14], 1
mov dword [ebp - 0xb4], 0xfffffffd
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x78], ebx
je 0x1002a805
mov dword [ebp - 0x34], 0xacf25792
xor edx, edx
mov dword [ebp - 0x2c], 0xa652065c
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x78]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], ebx
mov ecx, dword [ebp - 0x2c]
add ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x14]
neg ecx
cmp ecx, eax
setne dl
xor ebx, ebx
add edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
cmp edx, eax
mov eax, dword [ebp - 0x78]
setl bl
xor ecx, ecx
cmp ebx, eax
setle cl
xor ebx, ebx
mov dword [ebp - 0x2c], ecx
jmp 0x1002a866
mov dword [ebp - 0xa8], 1
mov dword [ebp - 0x14], ebx
jmp 0x1002a860
lea eax, [ebp - 0xa8]
mov dword [ebp - 0xac], 1
push eax
push 0x3396
push ecx
push 0x6eb0
mov dl, 1
mov ecx, 0x7076
call fcn.10029918
push 0x3370
push 0x5f98
lea eax, [ebp - 0xac]
push 0x66f0
push eax
lea ecx, [ebp - 0x18]
call fcn.1002c141
add esp, 0x20
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x1002a814
push ecx
mov dl, 1
lea ecx, [ebp - 0xb4]
call fcn.1002a1cb
dec dword [ebp - 0x18]
pop ecx
jns 0x1002a798
mov eax, dword [ebp - 0x20]
neg eax
push 0x7c
sbb eax, eax
inc eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x78]
inc edx
mov eax, dword [ebp - 0x1c]
neg edx
mov dword [ebp - 0x40], 0xcb03f600
sbb edx, edx
mov word [ebp - 0x3c], 0xbb29
neg edx
add ecx, 0x31381660
add eax, edx
add eax, ecx
mov ecx, ebx
neg eax
mov dword [ebp - 0x68], ecx
sbb eax, eax
inc eax
mov dword [ebp - 0x24], eax
pop eax
push 2
mov word [ebp - 0x30], ax
pop esi
cmp esi, 2
jne 0x1002a8ee
push 4
pop ecx
push ecx
mov dword [ebp - 0x68], ecx
pop esi
jmp 0x1002a936
movzx edx, byte [ebp + esi - 0x3f]
mov eax, esi
sub eax, ecx
movzx eax, byte [ebp + eax - 0x42]
movzx ecx, word [ebp + eax*2 - 0x30]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + esi - 0x40]
add ecx, edx
lea edx, [ebp - 0x68]
push ecx
push 0x25c2
push 1
push ecx
mov word [ebp + eax*2 - 0x30], cx
mov ecx, 0x31b2
push 0x4ba6
call fcn.1002c5af
mov ecx, dword [ebp - 0x68]
add esp, 0x14
add esi, 2
cmp esi, 6
jb 0x1002a8df
xor eax, eax
mov dword [ebp - 0xbc], 7
mov word [ebp - 0x2e], ax
lea ecx, [ebp - 0xd0]
mov word [ebp - 0xd0], ax
lea eax, [ebp - 0x30]
push eax
mov dword [ebp - 0xc0], ebx
call fcn.10023986
mov edx, dword [ebp + 0x14]
lea eax, [ebp - 0xd0]
push eax
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], ebx
call fcn.10029877
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 2
call fcn.10014b87
push 0x5f60
push ecx
push ecx
mov dl, 1
mov ecx, 0x47e4
call fcn.1002ae6d
add esp, 0xc
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x7c], 0xc70c
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x44], 0xffffffff
mov dword [ebp - 0x48], 0x849f845d
push 4
call fcn.100021e9
push ecx
lea eax, [ebp - 0x94]
mov byte [ebp - 4], 3
push eax
push ecx
mov dword [ebp - 0x6c], 0xffffffff
lea edx, [ebp - 0xb8]
push 1
mov ecx, 0x5520
call fcn.1002a2c4
add esp, 0x10
lea eax, [ebp - 0x48]
lea edx, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x6c]
push eax
push ecx
push ecx
push 0x59c6
lea eax, [ebp - 0x94]
push eax
push 1
push ecx
push ecx
call fcn.1002bcb0
mov dword [ebp - 0x34], 0x24ed
add esp, 0x28
cmp dword [ebp - 0x34], 0x27c7
jle 0x1002aa9f
mov dword [ebp - 0x24], ebx
mov edi, ebx
mov dword [ebp - 0x20], ebx
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov eax, edi
mov dword [ebp - 0x38], ebx
cdq
idiv esi
mov edi, dword [ebp - 0x24]
mov esi, ebx
mov eax, edx
mov dword [ebp - 0x2c], eax
cdq
idiv esi
mov eax, edi
mov ecx, edx
sar eax, cl
mov ecx, 0x1007cc18
cdq
push edx
push eax
call fcn.10013d0a
mov eax, dword [ebp - 0x2c]
inc esi
cmp esi, 0x9f
jl 0x1002aa51
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x7f33
jl 0x1002aa3f
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0x4dcd
jl 0x1002aa3a
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x1858
jl 0x1002aa35
mov ecx, dword [ebp - 0x94]
xor edx, edx
mov eax, dword [ecx]
cmp eax, dword [ecx + 8]
mov eax, dword [ebp - 0x7c]
setl dl
xor ecx, ecx
cmp eax, edx
setle cl
xor eax, eax
cmp ecx, 0x9305
mov ecx, dword [ebp - 0x48]
setle al
xor edx, edx
imul ecx, eax
mov eax, dword [ebp - 0x94]
mov dword [eax + 4], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x44]
inc ecx
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
sub ecx, eax
mov eax, dword [ebp - 0x44]
cmp ecx, eax
mov eax, dword [ebp - 0x6c]
setg dl
add eax, edx
mov dword [ebp - 0x48], eax
mov byte [ebp - 4], 4
cmp dword [ebp - 0x34], 0x2298
jge 0x1002ab2d
mov edx, str.rffcpkaw_mpjgc_izbq_qjakzmbyn_wmlgzrs_aybnqaa_xcpuowno_ivyo_nqjvejb
mov ecx, 0x1007cc18
call fcn.1001875a
jmp 0x1002ab2d
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 2
call fcn.10002246
push 9
pop eax
push 2
mov ecx, ebx
mov dword [ebp - 0x58], 0xe5040f00
mov dword [ebp - 0x54], 0x3d2b20d
mov dword [ebp - 0x50], 0x12a0229
mov byte [ebp - 0x4c], 7
mov word [ebp - 0x88], ax
pop esi
mov dword [ebp - 0x64], ecx
cmp esi, 2
jne 0x1002ab7d
push 5
pop ecx
push ecx
mov dword [ebp - 0x64], ecx
pop esi
jmp 0x1002abc0
movzx edx, byte [ebp + esi - 0x57]
mov eax, esi
sub eax, ecx
movzx eax, byte [ebp + eax - 0x5a]
movzx eax, word [ebp + eax*2 - 0x88]
mov ecx, eax
and eax, edx
or ecx, edx
mov edx, 0x370f
sub ecx, eax
movzx eax, byte [ebp + esi - 0x58]
push ecx
push 0x6c6b
mov word [ebp + eax*2 - 0x88], cx
lea ecx, [ebp - 0x64]
call fcn.1002cf7f
pop ecx
pop ecx
mov ecx, dword [ebp - 0x64]
add esi, 2
cmp esi, 0xd
jb 0x1002ab6e
xor eax, eax
mov dword [ebp - 0xec], 7
mov word [ebp - 0x80], ax
lea ecx, [ebp - 0x100]
mov word [ebp - 0x100], ax
lea eax, [ebp - 0x88]
push eax
mov dword [ebp - 0xf0], ebx
call fcn.10023986
xor eax, eax
mov byte [ebp - 4], 6
lea edi, [ebp - 0x88]
mov dword [ebp - 0x5c], ebx
stosd dword es:[edi], eax
push 0x18
pop ecx
stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [ebp - 0xa0]
sub eax, dword [ebp - 0xa4]
cdq
idiv ecx
mov esi, eax
test esi, esi
je 0x1002ac4c
lea eax, [ebp - 0x100]
mov cl, 1
push eax
push 1
lea eax, [ebp - 0xa4]
push eax
push 1
lea edx, [ebp - 0x5c]
call fcn.1002a307
mov eax, dword [ebp - 0x5c]
add esp, 0x10
inc eax
mov dword [ebp - 0x5c], eax
cmp eax, esi
jb 0x1002ac22
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0xa4]
push eax
call fcn.1002dcbb
mov dword [ebp - 0x38], 0x20ab
cmp dword [ebp - 0x38], 0x10fb
jge 0x1002ad09
mov edi, ebx
mov dword [ebp - 0xd4], 0xf
mov dword [ebp - 0xd8], ebx
mov byte [ebp - 0xe8], bl
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 7
push eax
lea eax, [ebp - 0xb0]
mov ecx, 0x1007ccd0
push eax
call fcn.100139fe
mov ecx, eax
call fcn.100139fe
mov esi, dword [ebp - 0xb0]
jmp 0x1002ace5
lea edx, [ebp - 0xe8]
mov ecx, 0x1007ccd0
dec esi
call fcn.1002e2c4
sub esp, 0x18
lea eax, [ebp - 0xe8]
mov ecx, esp
push eax
call fcn.1001397f
call fcn.1002a6e2
add esp, 0x18
cmp eax, dword [ebp - 0x98]
jg 0x1002ace5
inc edi
test esi, esi
jne 0x1002acb2
push edi
mov ecx, 0x1007cc18
call fcn.10013bf8
push eax
call fcn.10018931
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xe8]
call fcn.10014850
push ebx
push 1
lea ecx, [ebp - 0x100]
call fcn.10014b87
lea ecx, [ebp - 0xa4]
call fcn.1002e074
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x20], 0x2cb8
cmp dword [ebp - 0x20], 0x2f39
jle 0x1002ad8f
xor esi, esi
xor edi, edi
xor ebx, ebx
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov eax, ebx
cdq
idiv ecx
mov ecx, 0x1007cc18
lea eax, [edi + edx]
xor eax, esi
cdq
push edx
push eax
call fcn.10013d0a
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x572f
jl 0x1002ad4e
inc ebx
cmp ebx, 0x19ae
jl 0x1002ad49
inc edi
cmp edi, 0x22e5
jl 0x1002ad47
inc esi
cmp esi, 0x5f83
jl 0x1002ad45
push 0x2e92
push ecx
push 0x4c56
push ecx
lea eax, [ebp - 0x25]
mov byte [ebp - 0x25], 0
push eax
xor dl, dl
call fcn.1002b99c
add esp, 0x14
mov dword [ebp - 4], 8
cmp dword [ebp - 0x20], 0x2b16
jge 0x1002ad22
mov edx, str.clizktrh_hbrrwnz_bdnpgi_xfnppih_qmtvs_uihxanozm_zglgt_vsxhxzae
mov ecx, 0x1007cc18
call fcn.1001875a
jmp 0x1002ad22