Function at 0x1003ad07
Capabilities:
Encode data using xor
Get disk information

Disassembly:
mov eax, 0x1005a3e3
call fcn.100589e8
sub esp, 0x28
mov dword [ebp - 0x28], ecx
mov byte [ebp - 0x18], 1
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test dl, dl
je 0x1003af37
mov dword [ebp - 0x24], 0xbeb
cmp dword [ebp - 0x24], 0xee8
jle 0x1003ad8b
xor edi, edi
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x1c], eax
xor ecx, ecx
mov dword [ebp - 0x20], ecx
cdq
idiv ecx
mov ecx, 0x100742b8
sub edx, ebx
lea eax, [edi + edx]
cdq
push edx
push eax
call fcn.1000793a
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, 0x6865
jl 0x1003ad47
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x4c8b
jl 0x1003ad42
inc ebx
cmp ebx, 0x38b
jl 0x1003ad3d
inc edi
cmp edi, 0x616c
jl 0x1003ad3b
and dword [ebp - 4], 0
cmp dword [ebp - 0x24], 0xa44
jge 0x1003ada7
mov edx, str.qnc_qiozxymf_zrbu_ibgki_jsoe_qkymqaheb_uxsanl
mov ecx, 0x100742b8
call fcn.10009c90
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x24], 0x6824
cmp dword [ebp - 0x24], 0x6922
jle 0x1003adea
push 0
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
xor edi, edi
xor ebx, ebx
mov eax, ebx
mov ecx, 0x100742b8
xor eax, edi
cdq
push edx
push eax
call fcn.1000793a
inc ebx
cmp ebx, 0x402b
jl 0x1003adc7
inc edi
cmp edi, 0x652
jl 0x1003adc5
mov edi, dword [ebp + 0x14]
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi]
cmp ecx, eax
mov eax, dword [edi]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, 0xd1649bc0
setg cl
cmp eax, ecx
mov eax, dword [ebp + 8]
sbb ecx, ecx
neg ecx
mov dword [eax], ecx
cmp dword [eax], 0xcaad901
jl 0x1003ae1b
mov eax, dword [edi]
mov eax, dword [edi]
xor edx, edx
mov eax, dword [edi]
mov eax, dword [edi]
mov eax, dword [edi]
mov eax, dword [ebp + 0x20]
mov dword [eax], 0xc8f9
mov eax, dword [ebp + 0x18]
mov dword [eax], 0
mov eax, dword [eax]
mov ecx, dword [edi]
mov eax, dword [edi]
inc ecx
cmp ecx, eax
mov eax, dword [edi]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [edi]
setl cl
sub ecx, eax
mov eax, 0xfff9
neg ecx
sbb ecx, ecx
neg ecx
cmp eax, ecx
mov eax, dword [edi]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp eax, ecx
mov eax, dword [edi]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [edi]
sete bl
xor ecx, ecx
cmp ebx, eax
setge cl
xor eax, eax
cmp eax, ecx
mov eax, dword [edi]
sbb ecx, ecx
neg ecx
imul eax, ecx
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
cmp dword [ecx], 0
je 0x1003aee3
push 0x4f03
push 0x5006
push 1
push ecx
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0
push eax
push ecx
push ecx
mov dword [ecx], 0x63e87122
mov edx, ecx
push 0x9b8
mov ecx, 0x59be
call fcn.1003a59b
add esp, 0x20
jmp 0x1003aefc
mov edx, dword [ebp + 0x18]
lea eax, [ebp - 0x30]
push eax
push 1
mov cl, 1
mov dword [ebp - 0x30], 0xa2d3c5eb
call fcn.1003a506
pop ecx
pop ecx
mov dword [ebp - 4], 2
cmp dword [ebp - 0x24], 0x66e3
jge 0x1003af1b
mov edx, str.imrdgh_vuzdr_qeuu_qoynm_bgzk_tlg_eonhkrr_hpkbt_ohl_mzhxushm_mqwimot_tjs_kqvqnj
mov ecx, 0x100742b8
call fcn.10009c90
jmp 0x1003af6f
cmp byte [ebp + 0x1c], 0
je 0x1003af58
lea eax, [ebp - 0x11]
mov byte [ebp - 0x11], 0
push 0
push eax
mov edx, 0x68c7
mov ecx, 0x7467
call fcn.1003a21a
jmp 0x1003af6d
push 1
push 0
lea edx, [ebp - 0x12]
mov byte [ebp - 0x12], 0
mov ecx, 0x2ead
call fcn.1003a3e9
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret