Function at 0x10016c4d
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005f6f1
call fcn.1005ea30
sub esp, 0xbc
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x44], edx
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], ecx
cmp byte [ebp + 0x14], bl
je 0x10016d73
mov dword [ebp - 0x28], 0x43e9
xor esi, esi
inc ebx
cmp dword [ebp - 0x28], 0x46b9
jle 0x10016d03
mov dword [ebp - 0x48], esi
mov eax, esi
mov dword [ebp - 0x58], 0x580c
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], 0x444e
mov edi, esi
mov ecx, edi
shl eax, cl
lea ecx, [ebp - 0xc4]
cdq
push edx
push eax
call fcn.10001a95
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10016cbe
mov eax, dword [eax]
push eax
call fcn.10047ad3
pop ecx
push esi
push ebx
lea ecx, [ebp - 0xc4]
call fcn.10003d9b
mov eax, dword [ebp - 0x1c]
inc edi
cmp edi, 0x7822
jl 0x10016ca2
inc eax
dec dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
jne 0x10016ca0
mov eax, dword [ebp - 0x50]
mov edi, dword [ebp - 0x48]
add eax, edi
dec dword [ebp - 0x58]
mov dword [ebp - 0x50], eax
jne 0x10016c96
inc edi
mov dword [ebp - 0x48], edi
cmp edi, 0x3e7c
jl 0x10016c8a
cmp dword [ebp - 0x28], 0x4030
jge 0x10016d17
push str.dclvvywy_wak_dwi_odercmzj_ztdgxc_wgjibcfhi_nenlslyym
call fcn.10047ad3
pop ecx
mov edi, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x20]
mov dword [edi], 0xe2c0d37a
mov eax, dword [edx]
cmp dword [edx], esi
jne 0x10016d2b
mov eax, dword [edi]
mov eax, dword [edi]
mov eax, dword [edi]
mov eax, dword [edi]
mov dword [edx], eax
mov ecx, dword [edi]
mov eax, dword [edx]
xor edx, edx
cmp eax, ecx
mov ecx, dword [ebp + 0xc]
setne dl
mov eax, dword [ecx]
mov dword [eax], edx
mov eax, dword [edi]
mov eax, dword [ebp - 0x44]
mov dword [eax], esi
cmp dword [eax], esi
je 0x10016d56
mov eax, dword [ecx]
cmp dword [eax], esi
jne 0x10016d58
mov ebx, esi
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
sub ebx, dword [eax]
sub ebx, 0xf1d4b082
neg ebx
sbb ebx, ebx
add ebx, 0xfffffffb
mov dword [eax], ebx
jmp 0x100173a0
mov eax, dword [ebp + 0x10]
mov edx, 0x1a95
mov esi, dword [ebp + 0x18]
mov ecx, 0x4793
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x4c], esi
inc eax
mov dword [ebp - 0x14], 0x5720e83c
push ebx
mov dword [ebp - 0x14], 0x4f37831e
push eax
mov dword [ebp - 0x14], 0x532bb11a
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x94], 9
push eax
call fcn.10017fb9
pop ecx
pop ecx
lea eax, [ebp - 0x94]
push eax
call fcn.10017549
mov eax, dword [esi]
pop ecx
pop ecx
push 0xfffffffffffffffd
mov dword [ebp - 0x54], eax
pop esi
mov dword [ebp - 0x1c], 0x1a049fe3
mov dword [ebp - 0x1c], esi
jmp 0x10016e33
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x18], ebx
jmp 0x10016def
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x9c], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x10016de2
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x10016e30
push ecx
push ecx
push 0x3278
push ecx
mov byte [ebp - 0x32], bl
lea ecx, [ebp - 0x32]
mov dl, 1
call fcn.10016b32
add esp, 4
mov byte [ebp - 0x3a], bl
lea edx, [ebp - 0x3a]
push ebx
push ecx
push 0x4fda
push ecx
call fcn.10017cbd
add esp, 0x1c
dec dword [ebp - 0x18]
jns 0x10016dfd
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x11
jge 0x10016dda
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x54]
call fcn.1001993d
mov dword [ebp - 0x20], 0xfffffff7
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x84], 0xc84060a3
mov dword [ebp - 0x44], 0x4ab19f88
pop ecx
mov dword [ebp - 0x1c], ebx
jmp 0x10016e77
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x70], 1
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x10016e69
mov dword [ebp - 0x28], 0x41ee
cmp dword [ebp - 0x28], 0x43fa
jle 0x10016ec5
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x14], ebx
mov eax, ebx
mov ecx, 0x1007aeb8
xor eax, edi
or eax, esi
cdq
push edx
push eax
call fcn.10003751
inc ebx
cmp ebx, 0x14b5
jl 0x10016e94
inc edi
push 0
pop ebx
cmp edi, 0x6b8f
jl 0x10016e91
inc esi
cmp esi, 0x2ea
jl 0x10016e8f
push 0x5a31
push 0x76b5
push 0x2ace
push 0x37a3
push 0xa37
push 0x1b2a
push 0x72fa
push 0xee5
push 0x42df
lea eax, [ebp - 0x3b]
mov byte [ebp - 0x3b], bl
push eax
xor eax, eax
mov edx, 0x5d2e
inc eax
mov ecx, 0x7ede
push eax
push ebx
push eax
push 0x17d6
call fcn.1001aa27
add esp, 0x38
push 2
pop esi
mov dword [ebp - 4], esi
cmp dword [ebp - 0x28], 0x41a1
jge 0x10016f55
mov edx, str.tncokab_pnk_arbu_bffv_hexnhix_cnhlbztvr_egtue_ypq_wsazl_vxiwg_girtaxpfp_javzc_hknfbkssv_bpuhx
mov ecx, 0x1007aeb8
call fcn.10005cf1
jmp 0x10016f55
or dword [ebp - 4], 0xffffffff
xor edx, edx
inc edx
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], esi
jg 0x10017133
mov dword [ebp - 0x30], 0xe1265ab3
mov dword [ebp - 0x30], esi
cmp dword [ebp - 0x30], ebx
jl 0x1001712b
mov dword [ebp - 0x38], 0x40271dbc
xor ecx, ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x70]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x70]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x70]
cmp eax, 0xfffffffc
mov eax, dword [ebp - 0x20]
setle cl
sub eax, ecx
cmp eax, 0xffff
jne 0x100170f2
mov dword [ebp - 0x2c], 0xfffffff6
mov dword [ebp - 0x2c], ebx
cmp dword [ebp - 0x2c], esi
jg 0x100170c9
mov dword [ebp - 0x14], 0xf4a1d2da
mov dword [ebp - 0x28], 0x5e5d
cmp dword [ebp - 0x28], 0x6008
jle 0x10017006
mov edi, ebx
mov esi, ebx
mov eax, edi
mov ecx, 0x1007aeb8
cdq
idiv esi
mov eax, edx
cdq
push edx
push eax
call fcn.10003751
inc esi
cmp esi, 0x57a1
jl 0x10016fdd
inc edi
cmp edi, 0x39dd
jl 0x10016fdb
push 2
pop esi
mov eax, dword [ebp - 0x20]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0x70]
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x30]
cmp ecx, eax
mov eax, dword [ebp - 0x68]
sete dl
xor ecx, ecx
cmp edx, eax
sete cl
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x38], ebx
jne 0x10017035
cmp dword [ebp - 0x20], ebx
jne 0x10017035
mov edx, ebx
jmp 0x10017038
xor edx, edx
inc edx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x2c]
sete cl
xor edx, edx
sub ecx, eax
mov eax, dword [ebp - 0x30]
add eax, 0x3922c12e
add ecx, eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x70]
cmp ecx, eax
mov eax, dword [ebp - 0x2c]
setg dl
mov eax, dword [ebp + eax*4 - 0x70]
add eax, edx
xor edx, edx
inc edx
cmp eax, edx
jb 0x10017076
cmp dword [ebp - 0x20], ebx
jne 0x10017076
mov edx, ebx
mov dword [ebp - 0x14], edx
mov dword [ebp - 4], 4
cmp dword [ebp - 0x28], 0x5d21
jge 0x10017098
mov edx, str.ncs_qdqtbi_vjtbj_qoicae_hft_qurh_kmfa_dldjl_guucsnax_dlrg_lnugvqog_xfheaq_clw_xxp
mov ecx, 0x1007aeb8
call fcn.10005cf1
or dword [ebp - 4], 0xffffffff
inc dword [ebp - 0x2c]
jmp 0x10016fb9
lea eax, [ebp - 0x98]
xor cl, cl
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x84]
push eax
lea edx, [ebp - 0x30]
call fcn.10017855
add esp, 0x14
jmp 0x10017120
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x38], esi
cmp dword [ebp - 0x38], ebx
jl 0x10017120
lea eax, [ebp - 0x33]
mov byte [ebp - 0x33], bl
push eax
push 0x74ce
mov edx, 0x7697
call fcn.100188bf
dec dword [ebp - 0x38]
pop ecx
pop ecx
jns 0x10017103
dec dword [ebp - 0x30]
xor edx, edx
inc edx
jmp 0x10016f72
inc dword [ebp - 0x20]
jmp 0x10016f5f
mov eax, dword [ebp - 0x4c]
mov edi, ebx
mov dword [ebp - 0x14], eax
mov esi, eax
jmp 0x10017142
xor edx, edx
inc edx
sub esp, 0xc
mov dword [ebp - 0x74], 0x6e87
mov dword [ebp - 0x8c], 0x643
lea eax, [ebp - 0x39]
mov dword [ebp - 0x90], 0xfffffffc
mov dword [ebp - 0x80], 0xcd9796a
push edx
push ecx
push eax
mov dword [ebp - 0x7c], 0x85734cb4
mov edx, 0x5266
mov dword [ebp - 0x88], 0xffffffff
push ecx
mov byte [ebp - 0x39], bl
call fcn.10017cbd
add esp, 0x1c
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x88]
push eax
push ecx
lea eax, [ebp - 0x90]
push eax
push 1
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.10019166
mov cl, byte [edi + esi]
add esp, 0x20
mov dl, 0x4e
call fcn.10021f4f
mov byte [edi + esi], al
inc edi
cmp edi, 4
jb 0x1001713f
xor eax, eax
mov dword [ebp - 0x14], 0xfffffff7
inc eax
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x18], eax
push eax
call fcn.100039f2
mov dword [ebp - 4], 6
xor ecx, ecx
mov dword [ebp - 0x14], 0x80eec299
inc ecx
push 2
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], ebx
pop esi
jmp 0x1001720e
mov eax, dword [ebp - 0x40]
mov dword [ebp + eax*4 - 0x24], ebx
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], ecx
jl 0x10017204
push ecx
lea eax, [ebp - 0x40]
mov dl, cl
push eax
push 0x68ba
push 0x60f2
lea ecx, [ebp - 0x64]
call fcn.1001687b
add esp, 0x10
mov dword [ebp - 0x24], ebx
jmp 0x100172db
mov dword [ebp - 0x14], 0xbc6e5c7a
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x14], 0x6c74aa0d
mov dword [ebp - 0x14], 0xfffffffc
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x14], 0x3f5047c4
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x14], 0xb76eea53
push esi
call fcn.100039f2
push ecx
push ecx
lea eax, [ebp - 0xac]
mov byte [ebp - 4], 7
push eax
mov dword [ebp - 0x14], 0x7b44
lea edx, [ebp - 0xa8]
mov dword [ebp - 0x78], 9
push ecx
call fcn.10017b9a
add esp, 0xc
lea eax, [ebp - 0x78]
mov edx, 0x51e0
mov cl, 1
push eax
push 0x75a
call fcn.10017dbe
add esp, 8
mov byte [ebp - 0x31], bl
lea edx, [ebp - 0x31]
call fcn.10018af9
pop ecx
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 6
call fcn.10003a4f
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 8
je 0x10017237
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x10017390
mov dword [ebp - 0x14], 0xfffffff9
mov dword [ebp - 0x1c], 0x85d5fca4
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x64]
cmp dword [eax + ecx*4], ebx
je 0x10017316
mov dword [ebp - 0x24], 1
jmp 0x1001731e
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], ebx
je 0x10017321
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor edx, edx
mov ecx, dword [ebp - 0x64]
mov eax, dword [ecx + eax*4]
imul eax, dword [ecx]
neg eax
mov dword [ebp - 0x14], eax
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x64]
dec eax
cmp dword [ecx + esi*4], eax
mov eax, dword [ebp - 0x64]
setne dl
xor ebx, ebx
cmp edx, dword [eax]
setg bl
xor ecx, ecx
cmp ebx, dword [eax + edi*4]
setg cl
xor ebx, ebx
cmp ecx, dword [ebp - 0x44]
jge 0x1001736a
cmp dword [ebp - 0x24], ebx
je 0x1001736a
xor edx, edx
inc edx
jmp 0x1001736c
mov edx, ebx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x64]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x1c], eax
dec dword [ebp - 0x18]
jns 0x100172f1
lea ecx, [ebp - 0x64]
call fcn.10003a4f
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x54]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret