Function at 0x1004d520
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x28
mov dword [ebp - 0x20], ecx
mov eax, esp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x10051ce0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov ecx, dword [ebp - 0x20]
mov eax, dword [0x102828dc]
mov esi, dword [0x102828e0]
mov edx, eax
and edx, esi
xor eax, esi
lea eax, [eax + edx*2 + 0x1b09549b]
mov edx, 0x2c0caabf
mul edx
mov eax, edx
shr eax, 0x1d
add eax, 0xbff3fcd9
mov dword [ebp - 0x28], eax
push eax
mov eax, esp
push eax
mov edx, esp
mov dword [ebp - 0x2c], edx
mov dword [eax], ecx
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [ecx]
add ecx, dword [eax + 4]
call fcn.10049b90
mov ecx, dword [ebp - 0x2c]
mov edx, eax
mov eax, dword [ebp - 0x28]
mov dword [ecx], edx
cmp dword [ecx], 0
setne cl
mov byte [ebp - 0x21], cl
cmp eax, 0x14a14fb5
jbe 0x1004d552
mov al, byte [ebp - 0x21]
test al, 1
jne 0x1004d5c8
jmp 0x1004d70a
mov eax, dword [0x102828e4]
mov esi, dword [0x102828e8]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, esi
and edx, ecx
mov edi, esi
xor edi, 0xffffffff
mov ecx, eax
and ecx, edi
imul ecx, edx
mov edx, eax
and edx, esi
or eax, esi
imul eax, edx
add eax, ecx
xor eax, 0x5189156b
mov ecx, eax
xor ecx, 0x7d9dd256
xor ecx, 0xffffffff
and ecx, 0x7d9dd256
shl ecx, 1
sub ecx, 0x7d9dd256
sub eax, ecx
add eax, 0xcf508bf3
cmp eax, 0xb65f00f
je 0x1004d78d
mov ecx, dword [ebp - 0x2c]
mov edx, dword [0x102828ec]
mov esi, dword [0x102828f0]
mov eax, edx
xor eax, 0xffffffff
and eax, esi
xor esi, 0xffffffff
and edx, esi
or eax, edx
sub eax, 0x27b21672
sub eax, 0xcd90a0fb
mov edx, eax
and edx, 0xe4e1cce4
shl edx, 1
add eax, 0xe4e1cce4
sub eax, edx
mov ecx, dword [ecx]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ecx]
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x30], ecx
cmp eax, 0x86aa1a5d
je 0x1004d623
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x10], 0
call eax
jmp 0x1004d687
mov ecx, dword [0x102828f4]
add ecx, dword [0x102828f8]
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
and eax, 0x71861889
xor eax, 0xffffffff
and eax, 0x6e4a9699
xor eax, 0xffffffff
and eax, 0x77bdb89e
xor eax, 0xffffffff
cmp eax, 0x76e6fd51
jbe 0x1004d792
mov eax, dword [0x102828fc]
sub eax, dword [0x10282900]
sub eax, 0x957376bb
sub eax, 0x7ca55809
sub eax, 0xcf0d13f
add eax, 0x7ca55809
mov ecx, eax
xor ecx, 0xa28e91a5
xor ecx, 0xffffffff
and ecx, 0xa28e91a5
shl ecx, 1
sub ecx, 0xa28e91a5
sub eax, ecx
cmp eax, 0x8846b482
je 0x1004d792
jmp 0x1004d70a
mov eax, dword [0x10282904]
xor eax, dword [0x10282908]
add eax, 0x2fec208
sub eax, 0x77ee274f
add eax, 0xd89a9c25
cmp eax, 0x58d10727
ja 0x1004d797
mov eax, dword [0x1028290c]
mov edx, dword [0x10282910]
mov ecx, eax
and ecx, edx
xor eax, 0xffffffff
xor edx, 0xffffffff
and eax, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
and ecx, eax
mov eax, ecx
and eax, 0x1e2bb5ce
xor ecx, 0x1e2bb5ce
or eax, ecx
sub eax, 0x803d88ae
add eax, 0x765e5664
add eax, 0x803d88ae
and eax, 0xaacc64b8
cmp eax, 0xa21773cb
ja 0x1004d72f
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
jmp 0x1004d623
jmp 0x1004d6c0
jmp 0x1004d72f