Function at 0x10032c95
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005e0c2
call fcn.1005d3b0
sub esp, 0xb0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x18], 0x9cd4431f
push 3
mov dword [ebp - 0x28], 1
pop esi
mov dword [ebp - 0x54], ecx
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x1c], 0x5943e2f7
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x34], 0x767dbf12
push esi
call fcn.1002a6d6
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x50], 0xfffffffc
mov dword [ebp - 0x24], 0xa5e2b195
mov dword [ebp - 0x30], 0xe904
mov dword [ebp - 0x20], ebx
jmp 0x10032d0a
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x4c], 7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x10032cfc
mov dword [ebp - 0x20], ebx
jmp 0x10032d22
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x5c], 0xfffffffd
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10032d14
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x20]
call fcn.10032c21
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x44]
sub eax, 0xce3051eb
neg eax
push 0xfffffffffffffff7
sbb eax, eax
inc eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
pop ecx
cmp ecx, eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x28]
je 0x10032d6f
cmp dword [ebp - 0x28], ebx
je 0x10032d6f
xor eax, eax
inc eax
jmp 0x10032d71
mov eax, ebx
add eax, 0xf2d
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x38], 0x3604
cmp dword [ebp - 0x38], 0x384d
jle 0x10032dc2
mov edi, ebx
mov esi, ebx
mov eax, esi
mov ecx, 0x10606538
xor eax, edi
cdq
push edx
push eax
call fcn.1002a5c1
inc esi
cmp esi, 0x2200
jl 0x10032d9c
inc edi
cmp edi, 0x5481
jl 0x10032d9a
push 3
pop esi
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
neg eax
je 0x10032df6
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
mov eax, dword [ebp - 0x48]
cmp eax, 0xffffffff
setle cl
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x28]
jg 0x10032df6
xor edx, edx
inc edx
jmp 0x10032df8
mov edx, ebx
mov dword [ebp - 0x58], 7
mov ecx, dword [ebp - 0x14]
sub ecx, 7
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, edx
setle al
xor edx, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
setge dl
cmp edx, dword [ebp - 0x34]
jl 0x10032e29
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x34]
neg eax
sbb eax, eax
neg eax
cmp dword [ebp - 0x18], eax
jl 0x10032ebf
mov dword [ebp - 0x2c], 0x698b
mov dword [ebp - 0x18], 4
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x18], ebx
jmp 0x10032e62
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xbc], 0x726993c4
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x10032e51
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x18], 0xc499
cmp dword [ebp - 0x18], ebx
jne 0x10032e8e
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x70]
mov dword [eax], ebx
cmp dword [ebp - 0x1c], ebx
jne 0x10032e8e
mov ecx, ebx
jmp 0x10032e91
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x14]
xor edx, edx
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
mov eax, dword [ebp - 0x28]
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x18], ecx
inc dword [ebp - 0x30]
jmp 0x10032eca
lea ecx, [ebp - 0x3a]
mov byte [ebp - 0x3a], bl
call fcn.10032c40
mov byte [ebp - 4], 1
cmp dword [ebp - 0x38], 0x333c
jge 0x10032f07
mov edx, 0x1000a6d0
mov ecx, 0x10606538
call fcn.1002c06b
jmp 0x10032f07
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x70]
call fcn.1002a758
mov edi, dword [ebp - 0x54]
cmp dword [edi], 0
je 0x100331db
push dword [edi]
push ebx
push dword [edi + 4]
call fcn.1003d555
add esp, 0xc
mov ecx, edi
call fcn.10032c58
mov dword [ebp - 0x50], 0xfffffffd
mov dword [ebp - 0x1c], 0x9ad59e57
push 0xfffffffffffffffe
pop eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x34], 0xcef3cf68
mov dword [ebp - 0x60], 0xadc1094
mov dword [ebp - 0x24], 0x2883e731
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x24], 0xfffffff8
mov dword [ebp - 0x30], 0x36f9
cmp dword [ebp - 0x30], 0x375a
jle 0x10032fbe
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x38], 0x642b
mov dword [ebp - 0x24], ebx
mov ecx, ebx
mov eax, esi
sar eax, cl
mov ecx, 0x10606538
cdq
push edx
push eax
call fcn.1002a5c1
inc ebx
cmp ebx, 0x68da
jl 0x10032f8c
add esi, edi
dec dword [ebp - 0x38]
push 0
pop ebx
jne 0x10032f89
inc edi
cmp edi, 0x5de8
jl 0x10032f80
push 3
pop esi
push 4
lea ecx, [ebp - 0xa8]
call fcn.1002a6d6
mov dword [ebp - 4], esi
mov byte [ebp - 4], 4
cmp dword [ebp - 0x30], 0x33c4
jge 0x1003300b
mov edx, 0x1000a6f8
mov ecx, 0x10606538
call fcn.1002c06b
jmp 0x1003300b
mov dword [ebp - 4], esi
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x18], esi
push 2
call fcn.1002a6d6
lea edx, [ebp - 0xa8]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x40]
call fcn.10032c62
mov dword [ebp - 0x40], ebx
jmp 0x10033042
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x7c]
mov dword [eax + ecx*4], 1
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], 2
jl 0x10033032
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
je 0x10033063
lea ecx, [ebp - 0x3b]
mov byte [ebp - 0x3b], bl
call fcn.10032c81
jmp 0x100331b7
mov dword [ebp - 0x30], 7
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x2c], 0x19d87263
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x24], 0xfffffffa
mov dword [ebp - 0x24], 0xbab1f35
mov dword [ebp - 0x24], 0xabed9978
push esi
call fcn.1002a6d6
mov byte [ebp - 4], 7
mov dword [ebp - 0x24], 0xd385e397
mov dword [ebp - 0x28], ebx
jmp 0x100330bc
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x9c]
mov dword [eax + ecx*4], 1
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], esi
jl 0x100330a9
mov dword [ebp - 0x1c], 0xe
jmp 0x1003319f
push esi
lea ecx, [ebp - 0x88]
call fcn.1002a6d6
mov dword [ebp - 0x14], ebx
jmp 0x100330f1
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x88]
mov dword [eax + ecx*4], 0x8ee41b66
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x100330de
mov dword [ebp - 0x14], ebx
jmp 0x1003310c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x90], 0xb1b0cadf
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x100330fb
mov dword [ebp - 0x14], ebx
jmp 0x10033124
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xb4], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10033117
mov dword [ebp - 0x30], 0x2b90
xor edx, edx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x64]
cmp eax, ecx
mov ecx, 0xde6b9338
setge dl
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x38]
cmp ecx, eax
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x88]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, dword [eax]
setne dl
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x2c]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0xb4], eax
mov byte [ebp - 0x39], bl
cmp byte [ebp - 0x39], 0
je 0x10033191
push ebx
call dword [sym.imp.GDI32.dll_CreatePatternBrush]
lea ecx, [ebp - 0x88]
call fcn.1002a758
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 8
je 0x100330cd
inc dword [ebp - 0x18]
lea ecx, [ebp - 0x9c]
call fcn.1002a758
mov eax, dword [ebp - 0x7c]
lea ecx, [ebp - 0x7c]
inc dword [eax + 4]
call fcn.1002a758
lea ecx, [ebp - 0xa8]
call fcn.1002a758
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 4], ebx
call fcn.10032c91
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret