Function at 0x10035dd9
Capabilities:
Encode data using xor
Get disk size

Disassembly:
mov eax, 0x1005affa
call fcn.10059d20
sub esp, 0x60
cmp byte [ebp + 0xc], 0
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x38], esi
je 0x1003619c
cmp byte [ebp + 0x1c], 0
je 0x10035e27
mov eax, dword [ebp + 0x18]
cmp byte [eax], 0
je 0x10036256
push 0
push 0x5586
xor dl, dl
mov cl, 1
call fcn.10036854
pop ecx
pop ecx
jmp 0x10036256
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x28], eax
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
mov dword [ebp + 0xc], 4
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], bl
je 0x10035e4e
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
push 0x2ba9
push 0x7adc
push 0x3421
push ebx
push 0x2897
push 0x1ed3
xor esi, esi
mov edx, 0x2a6
push ebx
inc esi
mov ecx, 0x40ec
push esi
call fcn.100363c5
push esi
push 0x4cac
lea eax, [ebp - 0x28]
mov edx, 0x651a
push eax
push ebx
push ebx
lea ecx, [ebp - 0x34]
call fcn.1003654b
mov dword [ebp - 0x24], 0x9c3fbb4e
add esp, 0x34
mov dword [ebp + 0xc], esi
mov dword [ebp + 0xc], 0xfffffffa
mov dword [ebp - 0x20], 0xfd06bde6
mov dword [ebp - 0x30], 0x18461e70
mov dword [ebp + 0xc], 0xfffffff8
mov dword [ebp + 0xc], ebx
jmp 0x10035ed1
mov eax, dword [ebp + 0xc]
mov dword [ebp + eax*4 - 0x58], 9
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], 3
jl 0x10035ec3
cmp dword [ebp - 0x58], ebx
jne 0x10035ee3
mov ecx, ebx
cmp dword [ebp - 0x24], ebx
je 0x10035ee5
mov ecx, esi
mov eax, dword [ebp - 0x58]
imul eax, ecx
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x58]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp - 0x50]
cmp dword [ebp - 0x58], 0xfffc
mov eax, dword [ebp - 0x58]
sbb ecx, ecx
neg ecx
imul eax, ecx
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp - 0x24]
jl 0x10035f29
mov edx, ebx
cmp dword [ebp - 0x30], ebx
je 0x10035f2b
mov edx, esi
mov eax, dword [ebp - 0x58]
xor ecx, ecx
mov edi, dword [ebp - 0x28]
cmp edx, eax
mov esi, ebx
setl cl
mov dword [ebp + 0xc], ecx
mov cl, byte [esi + edi]
mov dl, 0x12
call fcn.1003b020
mov byte [esi + edi], al
inc esi
cmp esi, 4
jb 0x10035f3d
xor esi, esi
mov eax, 0x35a60c4
inc esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x3c], 0x426c
mov dword [ebp - 0x30], 9
mov dword [ebp - 0x40], esi
mov dword [ebp + 0xc], ebx
jmp 0x10035f8a
mov eax, dword [ebp + 0xc]
mov dword [ebp + eax*4 - 0x4c], esi
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], 2
jl 0x10035f80
mov dword [ebp - 0x18], ebx
jmp 0x10036185
push 0x48e3
push 0x39f
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0x5e1f
push eax
push ebx
push 0x5fdc
push ebx
push 0x739e
mov dword [ebp - 0x1c], ebx
lea edx, [ebp - 0x18]
push 0x4798
lea ecx, [ebp - 0x1c]
call fcn.10033f9b
add esp, 0x20
mov dword [ebp - 0x14], ebx
jmp 0x10036179
mov dword [ebp + 0xc], 0xbc130268
xor edx, edx
mov dword [ebp - 0x5c], ebx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
test eax, eax
mov eax, dword [ebp - 0x18]
setle dl
xor ecx, ecx
cmp edx, eax
setge cl
sub ecx, 0x259c42fa
jne 0x10036003
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
mov eax, dword [ebp + 0xc]
setle dl
xor ecx, ecx
cmp edx, eax
setle cl
add ecx, 7
jne 0x1003603d
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x4c], 0xffffffff
mov eax, dword [ebp - 0x3c]
imul eax, dword [ebp - 0x18]
test eax, eax
je 0x1003611b
mov dword [ebp + 0xc], 0xffffffff
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x2c], 0x866ca241
mov dword [ebp - 0x2c], 0x9515b845
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x4c]
cmp dword [ebp + 0xc], ebx
je 0x10036085
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp - 0x24]
xor edx, edx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp eax, ecx
setl dl
sub edx, 0xf00d
mov dword [ebp - 0x2c], edx
xor edx, edx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x4c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x30]
cmp eax, ecx
setl dl
add edx, 0xcc6c
sub edx, dword [ebp - 0x30]
mov eax, dword [ebp + 0xc]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
mov eax, dword [ebp - 0x14]
setg cl
xor edx, edx
cmp ecx, 0x8654
mov eax, dword [ebp + eax*4 - 0x4c]
setle dl
xor ebx, ebx
cmp eax, edx
mov eax, dword [ebp - 0x14]
setl bl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x4c]
cmp ebx, eax
mov eax, dword [ebp - 0x14]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setl dl
xor ecx, ecx
cmp edx, eax
setge cl
xor ebx, ebx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
jmp 0x10036176
mov dword [ebp - 0x2c], 0xbbe7
mov dword [ebp - 0x20], ebx
jmp 0x1003616d
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x64], ecx
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x20]
sub ecx, dword [ebp + eax*4 - 0x68]
je 0x10036160
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], 0
je 0x1003616a
push 0x21a2
push ebx
push ebx
call dword [sym.imp.GDI32.dll_TranslateCharsetInfo]
jmp 0x1003616a
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x68], ecx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jle 0x10036127
mov eax, dword [ebp - 0x2c]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jle 0x10035fd7
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffee
jg 0x10035f98
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x34]
mov dword [ecx], eax
jmp 0x10036256
mov dword [ebp - 0x30], 0x2cb7
cmp dword [ebp - 0x30], 0x308f
jle 0x100361f9
xor edi, edi
xor ebx, ebx
xor esi, esi
xor ecx, ecx
mov dword [ebp + 0xc], ecx
mov eax, esi
shl eax, cl
mov ecx, 0x10073998
xor eax, ebx
xor eax, edi
cdq
push edx
push eax
call fcn.100034ac
mov ecx, dword [ebp + 0xc]
inc ecx
mov dword [ebp + 0xc], ecx
cmp ecx, 0x1735
jl 0x100361b7
inc esi
cmp esi, 0x28b
jl 0x100361b2
inc ebx
cmp ebx, 0x4add
jl 0x100361b0
inc edi
cmp edi, 0x465e
jl 0x100361ae
mov esi, dword [ebp - 0x38]
and dword [ebp - 4], 0
cmp dword [ebp - 0x30], 0x2ba9
jge 0x10036234
mov edx, str.hfue_jyufnigq_syigvlrve_kcosrt_opbzny_etrgfwuqe_ucoflaprk_kuw_pofdfwt_qxvgsu_pxiclmpi
mov ecx, 0x10073998
call fcn.10005649
jmp 0x10036234
cmp byte [ebp + 0x10], 0
je 0x10036242
call dword [sym.imp.USER32.dll_CreatePopupMenu]
jmp 0x10036256
mov eax, dword [ebp + 0x14]
mov dword [eax], 0
jmp 0x10036251
inc dword [esi]
inc dword [eax]
cmp dword [eax], 0x10
jl 0x1003624d
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret