Function at 0x1004ca70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x30
mov dword [ebp - 0x24], ecx
mov eax, dword [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], 0x10051cc0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [0x10282824]
xor edx, edx
div dword [0x10282828]
mov ecx, eax
add ecx, 0xe7f47981
sub ecx, 0xb568dfa0
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xe078334f
and ecx, 0x1f87ccb0
or eax, ecx
xor eax, 0x55d9b3f0
cmp eax, 0xd6f1b77e
ja 0x1004ccd2
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x20]
push eax
mov edx, esp
mov dword [ebp - 0x34], edx
push eax
mov eax, esp
mov dword [ebp - 0x28], eax
push eax
mov ecx, esp
push eax
mov ebx, esp
mov dword [ebp - 0x30], ebx
mov dword [eax], edi
mov dword [ecx], esi
mov ecx, dword [ecx]
mov dword [ebp - 0x2c], ecx
mov dword [edx], ecx
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.1004d340
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov eax, dword [ecx]
add ecx, dword [eax + 4]
call fcn.1004c010
test al, 1
jne 0x1004cb3b
mov eax, dword [ebp - 0x2c]
mov byte [eax + 4], 0
jmp 0x1004ccb9
jmp 0x1004cb40
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov eax, dword [ecx]
add ecx, dword [eax + 4]
call fcn.1004c1b0
mov ecx, eax
mov eax, dword [ebp - 0x30]
mov dword [eax], ecx
cmp dword [eax], 0
je 0x1004cb6f
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x1004cba3
mov ecx, dword [ebp - 0x2c]
mov eax, dword [0x1028284c]
xor edx, edx
div dword [0x10282850]
or eax, 0xc1eceae9
imul eax, eax, 0x9a9b59c4
add eax, 0x12713c8e
mov byte [ecx + 4], 1
cmp eax, 0xad1c4dd6
ja 0x1004cd0d
jmp 0x1004ccb9
mov ecx, dword [0x10282854]
mov edx, dword [0x10282858]
mov esi, ecx
xor esi, 0xffffffff
mov eax, edx
and eax, esi
xor edx, 0xffffffff
and ecx, edx
or eax, ecx
sub eax, 0xd2d5a86b
mov ecx, eax
xor ecx, 0xb294f31
and eax, 0xf4d6b0ce
shl eax, 1
sub eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x9cd83cda
and eax, 0x6327c325
sub eax, ecx
cmp eax, 0x619c5fc7
je 0x1004cd19
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
mov dword [ebp - 0x10], 0
call fcn.1004c350
jmp 0x1004cc08
mov eax, dword [0x10282864]
mov edx, dword [str._vk]
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
or eax, edx
and eax, ecx
mov edx, eax
and edx, 0x7264e0f9
mov ecx, eax
or ecx, 0x7264e0f9
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x8d9b1f06
or eax, 0x8d9b1f06
imul eax, edx
add eax, ecx
add eax, 0x65893d59
add eax, 1
add eax, 0xabc09b64
cmp eax, 0xe24ef813
je 0x1004cd1e
mov eax, dword [ebp - 0x28]
mov ecx, dword [0x1028286c]
imul ecx, dword [0x10282870]
sub ecx, 0x7982ea31
add ecx, 0xdd956eb6
add ecx, 0xa1883f3e
sub ecx, 0xdd956eb6
xor ecx, 0xa1a96522
mov dword [ebp - 0x38], ecx
mov ecx, dword [eax]
mov eax, dword [ecx]
add ecx, dword [eax + 4]
call fcn.1004c010
mov ecx, dword [ebp - 0x2c]
mov dl, al
mov eax, dword [ebp - 0x38]
and dl, 1
mov byte [ecx + 4], dl
cmp eax, 0x1554e922
je 0x1004cc5e
jmp 0x1004ccb9
mov eax, dword [ebp - 0x34]
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 4
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x20]
push eax
mov edx, esp
push eax
mov eax, esp
mov dword [ebp - 0x3c], eax
push eax
mov ecx, esp
mov dword [eax], edi
mov dword [ecx], esi
mov ecx, dword [ecx]
mov dword [edx], ecx
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.1004d340
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
mov eax, dword [ecx]
add ecx, dword [eax + 4]
call fcn.1004c010
jmp 0x1004cae5
mov eax, dword [ebp - 0x2c]
mov byte [eax + 4], 1
jmp 0x1004cb6f
jmp 0x1004cbf2
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov eax, dword [ecx]
add ecx, dword [eax + 4]
call fcn.1004c010
mov cl, al
mov eax, dword [ebp - 0x2c]
and cl, 1
mov byte [eax + 4], cl
jmp 0x1004cc5e