Function at 0x1003a392
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005bfe5
call fcn.1005a9e0
sub esp, 0x60
push ebx
push esi
push edi
mov edi, edx
mov dword [ebp - 0x10], esp
xor esi, esi
mov dword [ebp - 0x18], edi
cmp byte [ebp + 0x38], 0
mov dword [ebp - 0x20], ecx
je 0x1003a547
mov dword [ebp - 0x1c], 0x6668
cmp dword [ebp - 0x1c], 0x68dd
jle 0x1003a421
mov ebx, esi
mov edi, esi
mov dword [ebp - 0x18], esi
mov dword [ebp + 0x38], edi
mov dword [ebp - 0x14], 0x1cde
mov edi, esi
mov esi, dword [ebp + 0x38]
mov ecx, edi
mov eax, esi
shl eax, cl
mov ecx, 0x10076818
xor eax, ebx
cdq
push edx
push eax
call fcn.10001a30
inc edi
cmp edi, 0x667a
jl 0x1003a3df
dec esi
dec dword [ebp - 0x14]
push 0
mov dword [ebp + 0x38], esi
pop esi
jne 0x1003a3da
mov edi, dword [ebp - 0x18]
inc edi
mov dword [ebp - 0x18], edi
cmp edi, 0x171c
jl 0x1003a3d0
inc ebx
cmp ebx, 0x7586
jl 0x1003a3cb
mov dword [ebp - 4], esi
cmp dword [ebp - 0x1c], 0x64a7
jge 0x1003a43c
mov edx, str.efjvtlmsq_xwxy_puwrhqwzz_cdzpbfk_ofids_mwgfvurz
mov ecx, 0x10076818
call fcn.1000349f
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x18], 0x4ff5
cmp dword [ebp - 0x18], 0x5146
jle 0x1003a4a9
mov edi, esi
mov dword [ebp - 0x1c], esi
mov ebx, esi
mov dword [ebp - 0x14], edi
mov dword [ebp + 0x38], 0x37a2
mov eax, edi
lea ecx, [ebp - 0x54]
cdq
push edx
push eax
call fcn.10003aad
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1003a478
mov eax, dword [eax]
push eax
call fcn.100445e8
pop ecx
push esi
push 1
lea ecx, [ebp - 0x54]
call fcn.10001e5d
add edi, ebx
dec dword [ebp + 0x38]
jne 0x1003a461
mov edi, dword [ebp - 0x1c]
inc ebx
cmp ebx, 0x507c
jl 0x1003a457
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x2c1c
jl 0x1003a455
cmp dword [ebp - 0x18], 0x4faf
jge 0x1003a4bd
push str.mtriz_mktk_rhnmwbsd_zay_utg
call fcn.100445e8
pop ecx
or dword [ebp - 4], 0xffffffff
cmp byte [ebp + 0x30], 0
je 0x1003a514
mov edx, dword [ebp + 0xc]
mov dword [edx], esi
cmp dword [edx], 2
jge 0x1003a674
mov esi, dword [ebp + 0x14]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [edx]
cmp dword [edx], 2
jl 0x1003a4d8
jmp 0x1003a674
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x20]
push 0xffffffffffffffff
push dword [eax]
lea eax, [ebp - 0x6c]
push eax
call fcn.1003ee8d
mov ecx, dword [ebp + 0x24]
push eax
mov dword [ebp - 4], 4
call fcn.1003ef3b
push esi
push 1
lea ecx, [ebp - 0x6c]
call fcn.10018a82
jmp 0x1003a674
cmp byte [ebp + 0x28], 0
je 0x1003a65a
mov ebx, dword [ebp + 0x18]
mov dword [ebx], 1
jmp 0x1003a650
mov dword [ebp + 0x38], esi
lea eax, [ebp - 0x2c]
push dword [ebp + 0x38]
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0xfefd5227
push eax
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x2c], esi
push eax
push esi
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x28], esi
movdqu xmmword [ebp - 0x3c], xmm0
mov dword [ebp - 0x24], esi
call fcn.10019a9d
cmp dword [edi], esi
je 0x1003a597
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov eax, dword [ebp + 0x38]
xor ecx, ecx
mov edx, dword [ebp + 0x2c]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
mov eax, dword [edi]
mov eax, dword [ebp + 0x38]
cmp eax, 0xfffffffe
setne cl
cmp dword [edi], ecx
jle 0x1003a5bb
cmp dword [edx], esi
je 0x1003a5bb
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x14]
imul ecx, eax
mov eax, dword [edx]
xor edx, edx
cmp eax, ecx
mov eax, dword [edi]
mov edi, dword [ebp + 0x1c]
setg dl
xor ecx, ecx
cmp edx, eax
sete cl
xor edx, edx
cmp ecx, 0x82bc
mov ecx, dword [ebp + 0x34]
setg dl
mov eax, dword [ecx]
add eax, edx
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
add eax, dword [edi]
mov dword [ebp - 0x1c], edx
cmp eax, dword [edx + 8]
je 0x1003a609
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x38], 1
cmp dword [eax], esi
jne 0x1003a60c
mov dword [ebp + 0x38], esi
mov ebx, dword [ebx]
mov ecx, dword [ecx]
mov eax, dword [ebp + 0x10]
push dword [ebp - 0x2c]
mov edx, dword [eax]
mov eax, dword [eax]
mov edi, dword [eax + ecx*4]
xor ecx, ecx
cmp dword [ebp + 0x38], 0x7c3cb878
mov dword [edx + ebx*4], edi
setl cl
xor eax, eax
cmp edi, ecx
mov ecx, dword [ebp - 0x1c]
sete al
mov dword [ecx + 8], eax
call fcn.10044367
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], esi
dec dword [ebx]
pop ecx
cmp dword [ebx], esi
jge 0x1003a55f
jmp 0x1003a674
push esi
push esi
push 0x28a
push esi
push 0x2081
push esi
push esi
push 0x1d22
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret