Function at 0x40536d
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
movzx edx, byte [ebp - 1]
xor ecx, ecx
mov eax, 0xa4bcacac
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 8]
sub eax, ecx
mov dword [ebp - 0x1c], 0xffffe55d
sub dword [ebp - 0x1c], ecx
mov ecx, dword [0x41fc7c]
push esi
push edi
mov dword [ebp + 0x10], 0xa4b55c75
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 8]
movzx esi, byte [eax]
or ecx, 0xdb24be64
xor edx, edx
mov eax, 0x63d91ef9
div ecx
xor edx, edx
mov ecx, 0x28c0d7d5
push 0x1c
mov edi, 0x2500f7af
div ecx
mov eax, 0x1aa3
mov ecx, edx
or ecx, 0x7e13da94
xor edx, edx
div ecx
xor edx, edx
mov ecx, eax
or ecx, 0xf2f55726
pop eax
div ecx
mov ecx, dword [ebp - 0xc]
or ecx, 0x15318b43
xor edx, edx
push 0x2b
div ecx
mov eax, esi
shl eax, 0x10
sub eax, dword [ebp - 0xc]
imul eax, eax, 0x468c
sub eax, 0xfc87648
mov ecx, edx
xor edx, edx
div edi
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
or edi, 0xa08d82a
imul ecx, edx
imul ecx, ecx, 0x58ddf8ba
or ecx, 0x40cb69bf
xor edx, edx
div ecx
mov ecx, esi
shl ecx, 0xe
xor edx, edx
shl esi, 0x14
or esi, 0x6a4344c9
or eax, ecx
pop ecx
sub ecx, eax
or ecx, 0x7ddc12c4
push 0x74
pop eax
div ecx
xor edx, edx
push 6
mov ecx, eax
pop eax
div edi
xor edx, edx
push 4
div esi
pop eax
xor ecx, edx
or ecx, 0xd92e6d28
xor edx, edx
div ecx
mov ecx, dword [ebp - 0x28]
imul eax, eax, 0x709e
mov dword [0x41fc7c], eax
mov eax, dword [ebp - 0xc]
add eax, dword [ebp + 0xc]
mov cl, byte [ecx + eax]
mov byte [ebp - 3], cl
movzx ecx, cl
mov dword [ebp - 0x18], eax
mov eax, ecx
mov dword [ebp - 0x10], ecx
call fcn.00405288
movzx esi, byte [ebp + 0x10]
mov dword [0x41fc7c], eax
mov eax, ecx
call fcn.0040529b
xor eax, 0x471ba2c3
push 0xb
pop ecx
sub ecx, eax
xor ecx, esi
and ecx, 0x10
or ecx, 0x1fd6d68f
mov eax, esi
xor edx, edx
div ecx
add eax, 0x41
mov dword [0x41fc7c], eax
mov di, di
xor eax, eax
add eax, dword [ebp - 0x18]
push cx
pop cx
mov ecx, dword [ebp - 0x34]
xor ecx, dword [str.SSC_]
xor ecx, dword [ebp - 0x30]
not ecx
push cx
pop cx
add eax, ecx
lea edi, [edi]
xor dl, dl
dec dl
xor dl, byte [ebp - 0x2c]
not dl
push ecx
pop dword [ebp - 0x38]
mov dword [ebp - 0x20], eax
mov edi, dword [ebp - 0x20]
mov ebp, ebp
mov eax, edx
push ecx
pop ecx
mov byte [edi], al
push esi
call fcn.004052b0
mov edi, esi
pop ecx
imul edi, eax
mov dword [0x41fc7c], eax
call ebx
mov ecx, eax
mov eax, dword [ebp - 0x10]
and ecx, 0x6b04793a
imul eax, eax, 0x4974
imul ecx, edi
or ecx, 0x14
add ecx, 0x66ed0bb
or eax, 0x49
mov byte [ebp - 2], 0
mov dword [ebp - 8], 8
mov dword [ebp - 0x3c], eax
mov edi, dword [ebp - 8]
or edi, 0xfba03000
add edi, 0x60d
xor edx, edx
or edi, 0x81617290
mov eax, 0x20b6
div edi
mov edi, dword [ebp - 0x10]
mov dl, byte [ebp - 3]
add eax, 0x2e
and eax, dword [ebp - 0x14]
or eax, esi
sub edi, eax
mov eax, dword [ebp - 0x14]
dec dword [ebp - 8]
or eax, 1
push dword [ebp - 8]
add eax, esi
add eax, dword [ebp - 0x3c]
add eax, edi
add ecx, eax
mov al, byte [ebp + 0x10]
mov dword [0x41fc7c], ecx
mov cl, byte [ebp - 8]
shr al, cl
shr dl, cl
and al, 1
and dl, 1
add al, dl
mov byte [ebp - 1], al
movzx eax, al
push eax
call fcn.004051ac
and byte [ebp - 1], 1
movzx edi, byte [ebp - 1]
add dword [0x41fc7c], eax
pop ecx
pop ecx
mov dword [ebp - 0x14], edi
call ebx
mov ecx, eax
and ecx, 0x4af0
or ecx, dword [ebp - 0x10]
mov eax, esi
sub eax, ecx
xor eax, 0x75
imul eax, eax, 0x53
or eax, edi
add dword [0x41fc7c], eax
mov al, byte [ebp - 2]
add al, al
add al, byte [ebp - 1]
mov byte [ebp - 2], al
call ebx
and eax, 0x69
or eax, edi
mov ecx, 0x5bd45d
sub ecx, eax
or ecx, dword [ebp - 8]
xor edx, edx
or ecx, 0x5f766e14
mov eax, 0x5c41a1ce
div ecx
mov ecx, dword [ebp - 8]
or ecx, 0x87054307
xor edx, edx
add eax, 0x11
div ecx
mov ecx, dword [0x41fc7c]
add ecx, edx
cmp dword [ebp - 8], 0
jne 0x40555f
movzx eax, byte [ebp - 1]
mov dword [ebp - 0x14], eax
add eax, 0xffffffba
xor eax, esi
add ecx, eax
mov eax, dword [ebp - 0x18]
mov al, byte [eax]
add al, byte [ebp - 2]
mov dword [0x41fc7c], ecx
movzx eax, al
mov dword [ebp - 0x3c], eax
mov di, di
xor eax, eax
add eax, dword [ebp - 0x18]
push cx
pop cx
mov ecx, dword [ebp - 0x44]
xor ecx, dword [str.SSC_]
xor ecx, dword [ebp - 0x40]
not ecx
push cx
pop cx
add eax, ecx
lea edi, [edi]
xor dl, dl
dec dl
xor dl, byte [ebp - 0x3c]
not dl
push ecx
pop dword [ebp - 0x48]
mov dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x24]
mov ebp, ebp
mov eax, edx
push ecx
pop ecx
mov byte [edi], al
mov edi, dword [0x41fc7c]
call ebx
mov ecx, eax
and ecx, 0x22
xor ecx, dword [ebp - 0x10]
xor edx, edx
or ecx, 0x6dd9661c
mov eax, 0x6a74
div ecx
mov ecx, esi
or esi, 0x3963b247
xor edx, edx
xor eax, edi
or eax, 0x2500
sub ecx, eax
mov eax, dword [ebp - 0x10]
add eax, 0x988
div esi
mov eax, 0x71dd
mov esi, edx
or esi, 0xfd9b46ff
xor edx, edx
div esi
imul ecx, eax
mov dword [0x41fc7c], ecx
mov ecx, dword [ebp + 0x10]
mov esi, ecx
xor esi, 0xcd949e4b
lea eax, [esi + 0x7cc647ab]
mov dword [ebp - 0x3c], eax
call fcn.0040526f
mov edi, dword [ebp + 0x10]
mov ecx, eax
xor edx, edx
add edi, 0xffffdb98
or edi, 0x383d0fc9
mov eax, esi
div edi
xor edx, edx
or ecx, 0xb5aa0fd7
or esi, 0xb4b9847f
mov edi, eax
or edi, 0x958371fe
mov eax, 0x1992
div edi
xor edx, edx
mov edi, 0xfe54fa7e
div edi
mov edi, dword [ebp - 0x3c]
mov dword [ebp + 0x10], edi
mov eax, edx
xor edx, edx
div ecx
mov ecx, 0x41dce58a
mov eax, edi
and eax, 0x3000
or edx, 0x2a
sub ecx, edx
xor edx, edx
div esi
mov eax, edi
xor ecx, edx
or ecx, 0xd11
mov dword [0x41fc7c], ecx
call fcn.004052cd
mov ecx, eax
lea eax, [edi + 0x7872]
imul ecx, eax
mov dword [0x41fc7c], ecx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0xc]
add eax, dword [ebp + 0xc]
jne 0x4053be
movzx eax, byte [ebp - 3]
sub eax, edi
sub eax, ecx
pop edi
add eax, 0x4ec0
pop esi
or eax, 0x34b91d96
pop ebx
leave
ret