Function at 0x1003b233
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10063153
call fcn.10061438
sub esp, 0x4c
mov byte [ebp - 0x18], cl
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test cl, cl
je 0x1003b288
mov eax, dword [ebp + 0x10]
cmp byte [eax], 0
je 0x1003b277
push 1
push 0x5a0e
push 1
push 0x71c5
push 0xadf
xor dl, dl
mov ecx, 0x114e
call fcn.10038cf5
add esp, 0x14
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 - 0x28], 0x4b73
xor ebx, ebx
cmp dword [ebp - 0x28], 0x4c62
jle 0x1003b2d2
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x24], ebx
mov eax, ebx
mov ecx, 0x1007fdb8
xor eax, edi
xor eax, esi
cdq
push edx
push eax
call fcn.1000e5de
inc ebx
cmp ebx, 0x42a3
jl 0x1003b2a1
inc edi
push 0
pop ebx
cmp edi, 0x7d66
jl 0x1003b29e
inc esi
cmp esi, 0x5c91
jl 0x1003b29c
mov dword [ebp - 0x24], 0x138c
cmp dword [ebp - 0x24], 0x4f7
jge 0x1003b510
call fcn.100491ea
push eax
push 0x10070cb4
push str.in.txt
call fcn.10049399
add esp, 0xc
call fcn.100491ea
add eax, 0x20
push eax
push 0x10070cc0
push str.out.txt
call fcn.10049399
add esp, 0xc
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], ebx
mov byte [ebp - 0x40], bl
lea edx, [ebp - 0x40]
mov dword [ebp - 4], ebx
mov ecx, 0x1007fed8
call fcn.10041fd0
push 0x10
pop edi
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
jne 0x1003b4ff
or dword [ebp - 0x20], 0xffffffff
mov esi, ebx
cmp dword [ebp - 0x30], 0
jbe 0x1003b4e2
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x30]
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x43
je 0x1003b4ad
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x47
je 0x1003b4ad
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x4a
je 0x1003b4ad
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x4b
je 0x1003b4ad
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x51
je 0x1003b4ad
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x53
je 0x1003b4ad
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x58
je 0x1003b4ad
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x5a
je 0x1003b4ad
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x42
je 0x1003b4a8
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x46
je 0x1003b4a8
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x50
je 0x1003b4a8
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x56
je 0x1003b4a8
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x44
je 0x1003b4a4
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x54
je 0x1003b4a4
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x4d
je 0x1003b4a0
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x4e
je 0x1003b4a0
cmp ecx, edi
lea eax, [ebp - 0x40]
cmovae eax, edx
cmp byte [eax + esi], 0x4c
jne 0x1003b480
push 4
jmp 0x1003b4af
cmp ecx, edi
mov dword [ebp - 0x24], 6
lea eax, [ebp - 0x40]
cmovae eax, edx
or dword [ebp - 0x1c], 0xffffffff
cmp byte [eax + esi], 0x52
mov eax, dword [ebp - 0x1c]
cmove eax, dword [ebp - 0x24]
jmp 0x1003b4b0
push 5
jmp 0x1003b4af
push 3
jmp 0x1003b4af
xor eax, eax
inc eax
jmp 0x1003b4b0
push 2
pop eax
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x20]
je 0x1003b4d4
cmp eax, 0xffffffff
je 0x1003b4d4
push eax
mov ecx, 0x1007fdb8
call fcn.1001c7e7
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x30]
inc esi
mov dword [ebp - 0x20], eax
cmp esi, ebx
jb 0x1003b362
xor ebx, ebx
push 0x1007fdb8
call fcn.1001f0bc
pop ecx
lea edx, [ebp - 0x40]
mov ecx, 0x1007fed8
call fcn.10041fd0
jmp 0x1003b339
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
push ebx
push 1
call fcn.1000f099
jmp 0x1003b513
push 0x10
pop edi
mov dword [ebp - 0x24], 0x151c
cmp dword [ebp - 0x24], 0x159c
jle 0x1003b582
push 0x2231
push 0x12b0
push 0x14eb
call dword [sym.imp.USER32.dll_CheckDlgButton]
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x1c], 0x6aec
mov dword [ebp - 0x20], eax
cdq
lea ecx, [ebp - 0x58]
push edx
push eax
call fcn.10001a7f
pop ecx
pop ecx
cmp dword [eax + 0x14], edi
jb 0x1003b55a
mov eax, dword [eax]
push eax
call fcn.10048643
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x58]
call fcn.1000f099
mov eax, dword [ebp - 0x20]
add eax, esi
dec dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
jne 0x1003b546
inc esi
cmp esi, 0x3692
jl 0x1003b53a
mov byte [ebp - 0x11], bl
cmp dword [ebp - 0x24], 0x117f
jge 0x1003b599
push str.zwenqxwk_urnel_xzjzadrwq_pwrbiomvm_aljwa_kzdpk_muzswsn_ruqvqzab_rpb_ygvbkkqp
call fcn.10048643
pop ecx
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x11]
push ecx
push ebx
push eax
call fcn.10039445
add esp, 0xc
mov dword [ebp - 4], 3
cmp dword [ebp - 0x28], 0x4821
jge 0x1003b277
mov edx, str.mdxoxcj_cymhvehc_mciyjw_tial
mov ecx, 0x1007fdb8
call fcn.100113ff
jmp 0x1003b277