Function at 0x1007fca0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x38
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x24], eax
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], 0x10096a50
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [0x10283d4c]
mov esi, dword [0x10283d50]
mov edi, esi
xor edi, 0xffffffff
mov edx, eax
and edx, edi
mov ecx, eax
or ecx, edi
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, esi
or eax, esi
imul eax, edx
add eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0xa4ac23e7
mov ecx, eax
and ecx, 0x5b53dc18
imul ecx, edx
mov edx, eax
and edx, 0xa4ac23e7
or eax, 0xa4ac23e7
imul eax, edx
add eax, ecx
sub eax, 0x8d5cef5c
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0xeab406d6
and eax, 0x154bf929
sub eax, ecx
cmp eax, 0xcf965c7c
jb 0x1007fff3
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x24]
mov eax, dword [0x10283d54]
mov ecx, dword [0x10283d58]
and eax, ecx
mov ecx, eax
and ecx, 0x2ce642f6
add ecx, ecx
sub eax, ecx
imul eax, eax, 0x9a2c2143
add eax, 0x6d2d3c62
or eax, 0x82b6c0d8
push eax
mov esi, esp
mov dword [ebp - 0x38], esi
push eax
mov ecx, esp
mov dword [ebp - 0x34], ecx
sub esp, 0x34
mov ebx, esp
mov dword [ebp - 0x30], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x2c], ebx
mov dword [esi], edi
mov dword [ecx], edx
cmp dword [ecx], 0
setne cl
mov byte [ebp - 0x25], cl
cmp eax, 0xa476e7ae
je 0x1007fff3
mov al, byte [ebp - 0x25]
test al, 1
jne 0x1007fdbf
jmp 0x1007ff99
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
cmp dword [eax], 0
jne 0x1007ff99
mov eax, dword [0x10283d6c]
mov esi, dword [0x10283d70]
mov edx, esi
xor edx, 0xffffffff
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, esi
add eax, edx
sub eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x1f2a98a2
and eax, 0xe0d5675d
sub eax, ecx
imul eax, eax, 0x54e1aaf2
xor eax, 0x835c6dad
mov dword [ebp - 0x10], 0xffffffff
cmp eax, 0xe94dfdc5
jae 0x10080008
mov eax, dword [0x10283d74]
add eax, dword [0x10283d78]
mov ecx, eax
and ecx, 0x8073c94e
mov edx, eax
xor edx, 0x7f8c36b1
add eax, edx
sub eax, ecx
sub eax, 0x2c6ad5d2
sub eax, 0x3be4e3c3
add eax, 0x2c6ad5d2
mov ecx, eax
and ecx, 0xea121c24
shl ecx, 1
add eax, 0xea121c24
sub eax, ecx
mov dword [ebp - 0x40], eax
sub esp, 4
mov dword [esp], 8
call fcn.100b13ee
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x44], edx
mov byte [ecx], 1
mov ecx, dword [eax]
call fcn.1003fe20
mov ecx, eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x3c], ecx
cmp eax, 0x92d6dbc3
jbe 0x1007fe18
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x10], 0
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10040350
jmp 0x1007feb2
jmp 0x1007feb7
mov eax, dword [0x10283d84]
xor ecx, ecx
sub ecx, dword [0x10283d88]
add eax, ecx
add eax, 0x498b3678
add eax, 0xcb32891c
sub eax, 0x498b3678
xor eax, 0xb94b02c7
mov edx, eax
and edx, 0x824eb079
mov ecx, eax
or ecx, 0x824eb079
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x7db14f86
or eax, 0x7db14f86
imul eax, edx
add eax, ecx
cmp eax, 0xbc968ed0
jbe 0x1008002f
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x10], 1
sub esp, 8
mov eax, esp
mov dword [eax], edx
mov dword [eax + 4], 0
call fcn.10080180
jmp 0x1007ff32
mov eax, dword [0x10283d8c]
mov esi, dword [0x10283d90]
mov edx, esi
xor edx, 0xffffffff
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, esi
add eax, edx
sub eax, ecx
mov ecx, 0xb0921e93
xor edx, edx
div ecx
mov ecx, eax
and ecx, 0xcdd4e62d
xor ecx, 0xffffffff
add eax, 0xcdd4e62d
add eax, 1
add eax, ecx
add eax, 0xe2cf757a
cmp eax, 0x5739de7
jb 0x10080034
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x2c]
mov byte [esi], 0
mov eax, dword [eax]
mov dword [eax], edx
call fcn.10040700
jmp 0x1007ff99
mov ecx, dword [0x10283dc4]
mov eax, dword [0x10283dc8]
xor eax, 0xffffffff
add ecx, eax
add ecx, 1
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xa701a16c
and ecx, 0x58fe5e93
or eax, ecx
imul eax, eax, 0xf90f81b4
xor ecx, ecx
sub ecx, eax
add ecx, 0xf7687708
xor eax, eax
sub eax, ecx
cmp eax, 0xa794cd8c
je 0x1007ff99
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, 4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
push eax
mov edx, esp
push eax
mov eax, esp
mov dword [edx], esi
mov dword [eax], ecx
jmp 0x1007fd4e
sub esp, 4
mov dword [esp], 8
call fcn.100b13ee
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov eax, dword [ebp - 0x38]
mov byte [ecx], 1
mov ecx, dword [eax]
call fcn.1003fe20
jmp 0x1007fe18
jmp 0x1007feb7
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x2c]
mov byte [esi], 0
mov eax, dword [eax]
mov dword [eax], edx
call fcn.10040700
jmp 0x1007ff7c