Function at 0x1003521b
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005afca
call fcn.10059d20
sub esp, 0xbc
mov byte [ebp - 0x3c], dl
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0x10], esp
test dl, dl
je 0x10035245
mov eax, dword [ebp + 0x18]
add dword [eax], 4
jmp 0x10035828
mov dword [ebp - 0x40], esi
xor ebx, ebx
mov dword [ebp - 0x1c], 0xfffffffa
xor edi, edi
mov dword [ebp - 0x20], 0x2906c902
inc edi
mov dword [ebp - 0x2c], 0xb06d673c
mov dword [ebp - 0x34], 0x65e429b0
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 4
jge 0x10035281
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xac], edi
inc dword [ebp - 0x20]
jmp 0x1003526c
mov dword [ebp - 0x1c], 0x1d
cmp dword [ebp - 0x1c], 0xffffffe5
jne 0x10035461
push 0xfffffffffffffffb
pop eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x14], ebx
jmp 0x100352b0
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x54], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x100352a6
mov dword [ebp - 0x14], ebx
jmp 0x100352c5
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x68], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x100352bb
push ebx
push 0x77b1
call fcn.10034e36
pop ecx
pop ecx
mov dword [ebp - 0x4c], ebx
jmp 0x10035447
mov eax, 0xb4ef66b
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x14], 0x423637b3
mov dword [ebp - 0x38], 0xfffffff8
cmp dword [ebp - 0x1c], ebx
je 0x1003530a
mov ecx, edi
cmp dword [ebp - 0x14], ebx
jne 0x1003530c
mov ecx, ebx
mov eax, dword [ebp - 0xac]
sub ecx, eax
mov eax, dword [ebp - 0x68]
add eax, ecx
je 0x1003531e
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0xac], edi
xor edx, edx
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x80]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
dec dword [ebp - 0x5c]
mov eax, dword [ebp - 0x14]
cmp eax, 0x21eb
mov eax, dword [ebp - 0x14]
setl dl
xor ecx, ecx
cmp edx, eax
setne cl
imul eax, ecx, 9
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], 0x15
cmp dword [ebp - 0x20], 0x1d
jle 0x10035444
mov eax, 0x3a09
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x18], 0x618d7c58
mov dword [ebp - 0x18], ebx
jmp 0x1003539e
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xb4], 0x8eaf5359
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x1003538d
mov eax, dword [ebp - 0x98]
xor edx, edx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setl dl
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, dword [ebp - 0x38]
cmp ecx, dword [ebp - 0x14]
jle 0x100353d5
mov eax, dword [ebp - 0x80]
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x98]
cmp eax, ecx
mov eax, dword [ebp - 0x34]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x20]
push 0
setg bl
xor ecx, ecx
sub ebx, eax
mov dword [ebp - 0xac], ebx
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
mov eax, dword [ebp - 0x5c]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x18]
pop ebx
setge dl
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
sub ecx, dword [ebp - 0x4c]
test ecx, ecx
setle al
mov dword [ebp - 0xb4], eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x1d
jg 0x10035364
dec dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xffffffe2
jle 0x100352df
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffe5
push 0xfffffffffffffffb
pop eax
je 0x10035295
mov dword [ebp - 0x1c], ebx
jmp 0x10035484
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0xac], ebx
jne 0x1003548a
push ecx
mov byte [ebp - 0x2e], bl
lea edx, [ebp - 0x2e]
push ecx
call fcn.100369be
inc dword [ebp - 0x1c]
pop ecx
pop ecx
cmp dword [ebp - 0x1c], 3
jle 0x10035466
movzx eax, word [esi]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x18], 0xc099a567
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x14], ebx
jmp 0x100354ad
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x24], 0xcf57
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1003549f
mov dword [ebp - 0x14], ebx
jmp 0x100354c8
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xc4], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x100354b7
inc dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
sub ecx, 0xffff
neg ecx
sbb ecx, ecx
neg eax
inc ecx
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x24]
setge dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], ebx
jne 0x10035507
mov edx, ebx
cmp dword [ebp - 0x24], ebx
je 0x10035509
mov edx, edi
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x24]
push 7
setl cl
sub ecx, eax
xor eax, eax
cmp ecx, 0xa0c0e075
pop ecx
setne al
cmp ecx, eax
push 0x13cb
sbb eax, eax
neg eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x24]
neg eax
sbb eax, eax
inc eax
inc edx
sub edx, eax
mov eax, dword [ebp - 0x24]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
lea eax, [ebp - 0x48]
lea edx, [ebp - 0x40]
setg cl
push ecx
mov dword [ebp - 0xb8], ecx
xor cl, cl
push eax
call fcn.100340a8
mov dword [ebp - 0x1c], 0x61f9
add esp, 0xc
mov dword [ebp - 0x28], 0xd2466e9f
mov dword [ebp - 0x28], 0xa11600d5
mov dword [ebp - 0x28], 0xa14c5530
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x28], 0x77cccaea
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x28], 0xda99da97
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x18], ebx
jmp 0x100355bd
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x70], 6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x100355af
mov dword [ebp - 0x38], 0x180a
cmp dword [ebp - 0x38], 0x19b7
jle 0x10035641
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x2c], ebx
mov ecx, ebx
mov dword [ebp - 0x14], 0xbbb
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], ecx
mov eax, edi
shl eax, cl
mov ecx, 0x10073998
xor eax, esi
cdq
push edx
push eax
call fcn.100034ac
mov ecx, dword [ebp - 0x18]
add ecx, ebx
dec dword [ebp - 0x14]
mov dword [ebp - 0x18], ecx
jne 0x100355e8
inc ebx
push 0
mov dword [ebp - 0x2c], ebx
cmp ebx, 0x32c
pop ebx
jl 0x100355d9
inc edi
cmp edi, 0x7dd9
jl 0x100355d6
inc esi
cmp esi, 0x2430
jl 0x100355d4
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetBkColor]
xor edi, edi
inc edi
cmp dword [ebp - 0x1c], ebx
je 0x1003569e
mov dword [ebp - 0x6c], 0x7e4fc22
mov dword [ebp - 0x1c], 0xffffffe4
jmp 0x10035693
push ecx
push 0x505d
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], 0xf37d
push eax
push 0xdd3
push ebx
mov ecx, 0x54d8
call fcn.10033e25
add esp, 0x14
lea eax, [ebp - 0x6c]
mov edx, 0x1c55
push eax
push ebx
push ecx
lea ecx, [ebp - 0x44]
call fcn.10033d76
add esp, 0xc
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x32
jg 0x10035656
jmp 0x100357b9
mov dword [ebp - 0x34], 0x5b1b6fd4
mov dword [ebp - 0x84], 0x3b4709ba
mov dword [ebp - 0x2c], 0x5f40e13f
mov dword [ebp - 0x28], 0xfffffff7
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x18], ebx
jmp 0x100356da
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x8c], 0x872d9ee1
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x100356c9
mov dword [ebp - 0x1c], ebx
jmp 0x10035793
mov dword [ebp - 0x28], 0x5145ccb9
xor edx, edx
mov dword [ebp - 0x28], 0x7289fff1
mov dword [ebp - 0x28], 0xafb5d1cb
mov dword [ebp - 0x18], 0xfffffff8
mov eax, dword [ebp - 0x34]
cmp eax, 0xfffffffd
mov eax, dword [ebp - 0x84]
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
xor edx, edx
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
cmp eax, ecx
setl dl
xor eax, eax
cmp edx, 0x659baaa4
setge al
sub eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
inc eax
imul esi, eax, 9
neg esi
sbb esi, esi
xor edx, edx
neg esi
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + eax*4 - 0x8c]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
mov eax, dword [ebp - 0x28]
setg dl
add eax, 0xd800
xor ecx, ecx
cmp eax, esi
setge cl
xor eax, eax
imul edx, ecx
cmp edx, 0x1d12
setge al
xor ecx, ecx
cmp eax, 0x21dd
mov eax, dword [ebp - 0x1c]
setne cl
mov dword [ebp + eax*4 - 0x8c], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jle 0x100356e8
mov byte [ebp - 0x2d], bl
cmp byte [ebp - 0x2d], 0
je 0x100357b9
push 0x4ca3
push ebx
xor dl, dl
mov ecx, 0x4a44
call fcn.10036648
pop ecx
pop ecx
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x38], 0x144d
jge 0x100357f2
mov edx, str.bvcg_ysauqn_gtgnbf_lclwefm_audbc_kjmdtniv
mov ecx, 0x10073998
call fcn.10005649
jmp 0x100357f2
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], ebx
jl 0x10035808
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0x70], ebx
jne 0x10035808
dec dword [ebp - 0x20]
jns 0x100357fa
mov esi, dword [ebp - 0x40]
mov cl, byte [ebx + esi]
mov dl, 0x12
call fcn.1003b020
mov byte [ebx + esi], al
inc ebx
cmp ebx, 2
jb 0x1003580b
mov ecx, dword [ebp + 8]
mov ax, word [ebp - 0x48]
mov word [ecx], ax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret