Function at 0x1003885c
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005c9e8
call fcn.1005b080
sub esp, 0x168
cmp byte [ebp + 0x18], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0xac], ecx
je 0x10038ffa
mov esi, dword [ebp + 0xc]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x2c], esi
push dword [ebp + 0x1c]
call fcn.100013fc
lea ecx, [ebp - 0xa4]
call fcn.10037594
add esp, 0x18
xor ebx, ebx
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0xa0]
je 0x10038ff6
lea eax, [ebp - 0xb0]
mov dword [ebp - 0xb0], ebx
push eax
push 0x1000
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
call fcn.10035108
mov byte [ebp - 4], 1
mov edi, 0x15385
mov eax, dword [ebp - 0x58]
sub eax, dword [ebp - 0x5c]
push dword [ebp - 0x5c]
sar eax, 1
push eax
push edi
push 0xd8a3
call fcn.100263b7
pop ecx
pop ecx
call eax
push dword [ebp - 0x5c]
lea ecx, [ebp - 0x80]
call fcn.1000b1e2
push 0x18e09
mov byte [ebp - 4], 2
call fcn.10034d1d
cmp dword [ebp - 0x6c], 8
pop ecx
movzx edx, ax
lea ecx, [ebp - 0x80]
cmovae ecx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x60], edx
cmp word [ecx + eax*2 - 2], dx
je 0x1003895a
lea eax, [ebp - 0x80]
mov dl, 1
push eax
push 1
push 1
push 0x7a66
push 0x27e1
push 0xbc4
lea ecx, [ebp - 0x60]
call fcn.10037af3
add esp, 0x18
push 1
push 0x5a0c
push 0x455e
push ecx
push 0x9fd
push ecx
lea ecx, [ebp - 0x80]
call fcn.100387c7
add esp, 0x18
lea eax, [ebp - 0x80]
cmp dword [ebp - 0x6c], 8
cmovae eax, dword [ebp - 0x80]
push ebx
push eax
push edi
push 0x176a1
call fcn.100263b7
pop ecx
pop ecx
call eax
push ecx
lea eax, [ebp - 0x60]
mov dl, 1
push eax
push ecx
push ecx
lea eax, [ebp - 0x80]
push eax
call fcn.10037d87
add esp, 0x14
mov dword [ebp - 0x64], ebx
lea eax, [ebp - 0xa4]
mov edx, 0x75a1
push 0x6e05
push 1
push 0x225a
push eax
lea eax, [ebp - 0x64]
push eax
push ecx
push ecx
call fcn.100384dc
add esp, 0x1c
mov dword [ebp - 0x18], ebx
mov eax, ebx
cmp eax, 0x12c
jae 0x10038fe0
mov dword [ebp - 0x1c], 0x500c
cmp dword [ebp - 0x1c], 0x5027
jle 0x10038a4e
mov ecx, ebx
mov dword [ebp - 0x20], ebx
mov esi, ebx
mov edi, ebx
lea eax, [edi + esi]
add eax, ecx
lea ecx, [ebp - 0x15c]
cdq
push edx
push eax
call fcn.10002a51
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10038a18
mov eax, dword [eax]
push eax
call fcn.1004498a
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x15c]
call fcn.10001643
mov ecx, dword [ebp - 0x20]
inc edi
cmp edi, 0x4da8
jl 0x100389fb
inc esi
cmp esi, 0x5dc2
jl 0x100389f9
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, 0x5970
jl 0x100389f7
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0xc8]
call fcn.100013fc
cmp dword [ebp - 0x1c], 0x4c55
jge 0x10038a71
push str.zbrhe_vsjqjztmd_pnq
call fcn.1004498a
pop ecx
push 0x10
pop edx
lea ecx, [ebp - 0x12c]
mov dword [ebp - 4], 3
call fcn.1000f194
push ecx
push ecx
lea eax, [ebp - 0x12c]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0xc8]
call fcn.1001537f
push 0x78
pop eax
push 2
mov ecx, ebx
mov dword [ebp - 0x48], 0x1d03c202
mov dword [ebp - 0x44], 0x21040001
mov dword [ebp - 0x40], 0xb9170e
mov byte [ebp - 0x3c], 0x4b
mov word [ebp - 0x94], ax
pop esi
mov dword [ebp - 0x20], ecx
cmp esi, 6
jne 0x10038ad9
push 5
pop ecx
push 9
mov dword [ebp - 0x20], ecx
pop esi
jmp 0x10038b25
movzx edx, byte [ebp + esi - 0x47]
mov eax, esi
sub eax, ecx
push 0x71e8
push 0x8b2
push 1
movzx eax, byte [ebp + eax - 0x4a]
push 0x7c80
movzx ecx, word [ebp + eax*2 - 0x98]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + esi - 0x48]
add ecx, edx
lea edx, [ebp - 0x20]
mov word [ebp + eax*2 - 0x98], cx
call fcn.100386df
mov ecx, dword [ebp - 0x20]
add esp, 0x10
add esi, 2
cmp esi, 0xd
jb 0x10038ac9
xor eax, eax
mov dword [ebp - 0xe8], 7
mov word [ebp - 0x90], ax
lea ecx, [ebp - 0xfc]
mov word [ebp - 0xfc], ax
lea eax, [ebp - 0x98]
push eax
mov dword [ebp - 0xec], ebx
call fcn.1000b482
push ecx
push ecx
lea eax, [ebp - 0xfc]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0xc8]
call fcn.1001537f
push ebx
push 1
lea ecx, [ebp - 0xfc]
mov byte [ebp - 4], 6
call fcn.100017af
xor eax, eax
lea edi, [ebp - 0x98]
cmp dword [ebp - 0xb4], 8
stosd dword es:[edi], eax
push ebx
push 0x80
push 2
stosd dword es:[edi], eax
push ebx
push ebx
push 0x40000000
stosw word es:[edi], ax
lea eax, [ebp - 0xc8]
cmovae eax, dword [ebp - 0xc8]
mov edi, 0x15385
push eax
push edi
push 0xc715
call fcn.100263b7
pop ecx
pop ecx
call eax
mov esi, eax
cmp esi, 0xffffffff
je 0x10038fb4
push ebx
lea eax, [ebp - 0xe4]
push eax
push dword [ebp - 0x64]
push dword [ebp - 0xa4]
push esi
push edi
push 0x13643
call fcn.100263b7
pop ecx
pop ecx
call eax
push esi
test eax, eax
push edi
push 0x170c7
setne bl
call fcn.100263b7
pop ecx
pop ecx
call eax
test bl, bl
je 0x10038fb2
mov dword [ebp - 0x1c], 0x63e5
xor ebx, ebx
cmp dword [ebp - 0x1c], 0x66e3
jle 0x10038c6e
mov esi, ebx
mov edi, ebx
lea eax, [edi + esi]
cdq
lea ecx, [ebp - 0x144]
push edx
push eax
call fcn.10002a51
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10038c47
mov eax, dword [eax]
push eax
call fcn.1004498a
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x144]
call fcn.10001643
inc edi
cmp edi, 0x6458
jl 0x10038c2c
inc esi
cmp esi, 0x7bd3
jl 0x10038c2a
cmp dword [ebp - 0x1c], 0x61ae
mov dword [ebp - 0x24], 0x401dc00
jge 0x10038c89
push str.jogezhn_anepazczi_mxtt_lixyt_qty_afybz_akms_qeflxztr_dwj_addi_mynpvrn_skijfhfyi_vlczrh
call fcn.1004498a
pop ecx
mov dword [ebp - 4], 6
mov dword [ebp - 0x18], 0x3814
cmp dword [ebp - 0x18], 0x389e
jle 0x10038cfa
mov edi, ebx
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x1c], ebx
and eax, esi
lea ecx, [ebp - 0x174]
xor eax, edi
cdq
push edx
push eax
call fcn.10002a51
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10038cc5
mov eax, dword [eax]
push eax
call fcn.1004498a
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x174]
call fcn.10001643
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x9c2
jl 0x10038ca9
inc esi
cmp esi, 0x1db6
jl 0x10038ca4
inc edi
cmp edi, 0x6a0b
jl 0x10038ca2
cmp dword [ebp - 0x18], 0x3499
push 0x22
pop eax
mov word [ebp - 0x28], ax
jge 0x10038d15
push str.geneurqdj_kkxlzfrei_nulk_lugsbl_byuwxs_vtm_ammrsa_xxvfdt_vvrlahous
call fcn.1004498a
pop ecx
mov dword [ebp - 4], 6
mov dword [ebp - 0x18], 0x1712
cmp dword [ebp - 0x18], 0x19b9
jle 0x10038d51
mov esi, ebx
mov edi, esi
mov ebx, 0x3b2f
mov eax, edi
mov ecx, 0x10077178
cdq
push edx
push eax
call fcn.1000b0cd
dec edi
dec ebx
jne 0x10038d35
inc esi
cmp esi, 0x63b1
jl 0x10038d2e
push 2
mov ecx, ebx
pop esi
mov dword [ebp - 0x4c], ecx
cmp esi, 2
jne 0x10038d65
push esi
pop ecx
mov dword [ebp - 0x4c], ecx
jmp 0x10038dce
movzx edx, byte [ebp + esi - 0x23]
mov eax, esi
sub eax, ecx
push 0x886
push 0x59b9
push 1
movzx eax, byte [ebp + eax - 0x26]
push 1
push 0x1d2e
push 0x4e47
movzx ecx, word [ebp + eax*2 - 0x28]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + esi - 0x24]
push 0x6385
add ecx, edx
mov edx, 0x1aa8
push 0x435c
mov word [ebp + eax*2 - 0x28], cx
lea eax, [ebp - 0x4c]
push 0x7c8a
push 0x542
push eax
mov cl, 1
call fcn.10037ee7
mov ecx, dword [ebp - 0x4c]
add esp, 0x2c
add esi, 2
cmp esi, 4
jb 0x10038d59
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x18], 0x1434
jge 0x10038e16
mov edx, str.itnf_iqn_ufjdrgyzj_igzn_qrjrp_fgd_qbr_czabbirye_fqbjcj_cllxhkv_bjq
mov ecx, 0x10077178
call fcn.1000ca72
jmp 0x10038e16
mov dword [ebp - 4], 6
lea ecx, [ebp - 0xe0]
xor eax, eax
mov dword [ebp - 0xcc], 7
mov word [ebp - 0x26], ax
mov word [ebp - 0xe0], ax
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0xd0], ebx
call fcn.1000b482
push ecx
push ecx
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0x28], ebx
call fcn.1001537f
push 0x20
pop eax
push 2
mov ecx, ebx
mov dword [ebp - 0x38], 0x73039c01
mov dword [ebp - 0x34], 0xe9f90603
mov dword [ebp - 0x30], 0xd007c02
mov word [ebp - 0x8a], ax
pop esi
mov dword [ebp - 0x50], ecx
cmp esi, 4
jne 0x10038e9a
push esi
pop ecx
push 6
mov dword [ebp - 0x50], ecx
pop esi
jmp 0x10038ee2
movzx edx, byte [ebp + esi - 0x37]
mov eax, esi
sub eax, ecx
push 1
movzx eax, byte [ebp + eax - 0x3a]
movzx eax, word [ebp + eax*2 - 0x8c]
mov ecx, eax
and eax, edx
or ecx, edx
mov edx, 0x6c3f
sub ecx, eax
movzx eax, byte [ebp + esi - 0x38]
push ecx
push ecx
mov word [ebp + eax*2 - 0x8c], cx
lea eax, [ebp - 0x50]
push eax
mov ecx, 0x4d75
call fcn.1003847a
mov ecx, dword [ebp - 0x50]
add esp, 0x10
add esi, 2
cmp esi, 0xc
jb 0x10038e8b
xor eax, eax
mov dword [ebp - 0x100], 7
mov word [ebp - 0x84], ax
lea ecx, [ebp - 0x114]
mov word [ebp - 0x114], ax
lea eax, [ebp - 0x8c]
push eax
mov dword [ebp - 0x104], ebx
call fcn.1000b482
push ecx
push ecx
lea eax, [ebp - 0x114]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp - 0xe0]
call fcn.1001537f
push ebx
push 1
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 0xe
call fcn.100017af
xor eax, eax
lea edi, [ebp - 0x8c]
stosd dword es:[edi], eax
lea edx, [ebp - 0x80]
lea ecx, [ebp - 0xe0]
stosd dword es:[edi], eax
stosw word es:[edi], ax
call fcn.10037623
mov ecx, dword [ebp + 0xc]
push ebx
push 1
mov byte [ecx], al
lea ecx, [ebp - 0xe0]
call fcn.100017af
push ebx
push 1
lea ecx, [ebp - 0x12c]
call fcn.100017af
push ebx
push 1
lea ecx, [ebp - 0xc8]
call fcn.100017af
push ebx
push 1
lea ecx, [ebp - 0x80]
call fcn.100017af
lea ecx, [ebp - 0x5c]
call fcn.1003518f
lea ecx, [ebp - 0xa4]
call fcn.1003a2ff
jmp 0x100390d1
xor ebx, ebx
push ebx
push 1
lea ecx, [ebp - 0x12c]
call fcn.100017af
push ebx
push 1
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 2
call fcn.100017af
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
jmp 0x100389d7
push ebx
push 1
lea ecx, [ebp - 0x80]
call fcn.100017af
lea ecx, [ebp - 0x5c]
call fcn.1003518f
mov esi, dword [ebp + 0xc]
mov byte [esi], bl
jmp 0x10038fa2
mov dword [ebp - 0x2c], 0x3f23
xor ebx, ebx
cmp dword [ebp - 0x2c], 0x41ad
jle 0x10039072
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x18], ebx
mov eax, edi
mov dword [ebp - 0xa8], ebx
cdq
idiv ecx
mov eax, esi
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x68], eax
mov esi, eax
mov eax, ebx
mov ecx, 0x10077178
xor eax, esi
cdq
push edx
push eax
call fcn.1000b0cd
inc ebx
cmp ebx, 0x3fbd
jl 0x1003902e
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x18], ecx
push 0
pop ebx
cmp ecx, 0x766e
jl 0x10039018
inc edi
cmp edi, 0x109b
jl 0x10039013
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x13c1
jl 0x10039011
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x2c], 0x3d1a
jge 0x100390af
mov edx, str.codqw_gyyz_lshxgcja_lbp
mov ecx, 0x10077178
call fcn.1000ca72
jmp 0x100390af
mov edx, dword [ebp + 0x10]
mov dword [edx], ebx
cmp dword [edx], 1
jge 0x100390d1
mov esi, dword [ebp - 0xac]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0x504c
inc dword [edx]
cmp dword [edx], 1
jl 0x100390bf
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret