Function at 0x1003b5e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
lea eax, [ebp + 8]
mov dword [ebp - 0x20], eax
mov eax, esp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x1004f150
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [0x1027cb84]
or eax, dword [0x1027cb88]
mov ecx, eax
xor ecx, 0x174734ce
and eax, 0xe8b8cb31
shl eax, 1
sub eax, ecx
and eax, 0xa9978df3
mov ecx, eax
and ecx, 0xd49b2ffd
mov edx, eax
xor edx, 0x2b64d002
add eax, edx
sub eax, ecx
cmp eax, 0xbc39d4ee
jae 0x1003b8ae
mov ecx, dword [ebp - 0x20]
mov eax, dword [0x1027cb8c]
mov edx, dword [0x1027cb90]
xor eax, edx
and eax, 0x91181a81
add eax, 0x9f7fd99d
mov dword [ebp - 0x28], eax
push eax
sub esp, 0x14
mov eax, esp
mov dword [ebp - 0x38], eax
mov eax, dword [ecx]
mov dword [ebp - 0x34], eax
mov eax, ecx
add eax, 4
mov dword [ebp - 0x30], eax
add ecx, 0xc
mov dword [ebp - 0x2c], ecx
call fcn.1000d420
mov cl, al
mov eax, dword [ebp - 0x28]
mov byte [ebp - 0x21], cl
cmp eax, 0x7075cc44
jbe 0x1003b655
mov al, byte [ebp - 0x21]
test al, 1
jne 0x1003b70a
jmp 0x1003b6b6
mov eax, dword [0x1027cb9c]
add eax, dword [0x1027cba0]
imul eax, eax, 0x43bc5c0e
and eax, 0x37a0eec
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, 0x223e48ca
add eax, ecx
cmp eax, 0xbc7f8d9e
jae 0x1003b6b6
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x10], 0
sub esp, 4
mov eax, esp
mov dword [eax], 0x10258de3
call fcn.1003bda0
jmp 0x1003b705
jmp 0x1003b70a
mov eax, dword [0x1027cba4]
xor edx, edx
div dword [0x1027cba8]
mov ecx, eax
xor eax, eax
sub eax, ecx
add eax, 0xd04ae1a7
xor ecx, ecx
sub ecx, eax
mov edx, ecx
and edx, 0x166e4471
mov eax, ecx
or eax, 0x166e4471
xor eax, 0xffffffff
imul eax, edx
mov edx, ecx
and edx, 0xe991bb8e
or ecx, 0xe991bb8e
imul ecx, edx
add ecx, eax
mov eax, ecx
and eax, 0x8d0286b8
xor ecx, 0xffffffff
and ecx, 0x72fd7947
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
cmp eax, 0x2a83e5b4
jbe 0x1003b8be
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x10], 0
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.1003bf70
jmp 0x1003b78f
mov ecx, dword [0x1027cbb4]
or ecx, dword [0x1027cbb8]
mov eax, ecx
and eax, 0xd8b51aa6
xor ecx, 0xd8b51aa6
or eax, ecx
and eax, 0xec83a7f8
mov edx, eax
xor edx, 0xffffffff
and edx, 0x4efa68b1
mov ecx, eax
and ecx, 0xb105974e
imul ecx, edx
mov edx, eax
and edx, 0x4efa68b1
or eax, 0x4efa68b1
imul eax, edx
add eax, ecx
cmp eax, 0x63fd1cd0
je 0x1003b8ca
mov eax, dword [0x1027cbbc]
add eax, dword [0x1027cbc0]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x109c3fd5
and eax, 0xef63c02a
sub eax, ecx
mov ecx, 0x29f95e10
xor edx, edx
div ecx
xor eax, 0xf501ae24
cmp eax, 0xd932e2d
jb 0x1003b8ca
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x10], 1
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.1003bf30
jmp 0x1003b836
mov eax, dword [0x1027cbc4]
mov edx, dword [0x1027cbc8]
mov ecx, eax
xor ecx, edx
xor edx, 0xffffffff
and eax, edx
shl eax, 1
sub eax, ecx
mov ecx, eax
and ecx, 0x82a43aa4
shl ecx, 1
xor eax, 0x82a43aa4
add eax, ecx
or eax, 0x219f077f
imul eax, eax, 0x48d0da51
cmp eax, 0xed23a286
ja 0x1003b8cf
mov ecx, dword [ebp - 0x38]
call fcn.100061b0
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x2c]
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.1000ce50
mov ecx, dword [ebp - 0x2c]
call fcn.100061b0
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x20]
add ecx, 0xc
call fcn.1000d420
jmp 0x1003b655
mov dword [ebp - 0x10], 0
jmp 0x1003b771
jmp 0x1003b7e2
mov ecx, dword [ebp - 0x38]
call fcn.100061b0
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
sub esp, 4
mov dword [esp], eax
call fcn.1000ce50
mov ecx, dword [ebp - 0x2c]
call fcn.100061b0
jmp 0x1003b875