Function at 0x10009970
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
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], 0x1004ef50
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov edx, dword [0x1027a664]
mov eax, dword [0x1027a668]
xor edx, 0xffffffff
xor eax, 0xffffffff
or edx, eax
mov ecx, edx
xor ecx, 0xffffffff
and edx, 0x556e955a
mov eax, ecx
and eax, 0xaa916aa5
imul eax, edx
mov edx, ecx
and edx, 0x556e955a
or ecx, 0x556e955a
imul ecx, edx
add ecx, eax
mov eax, ecx
and eax, 0xd627ea4e
or ecx, 0xd627ea4e
add eax, ecx
sub eax, 0x17a61ae8
cmp eax, 0xa5a88662
je 0x10009c1e
mov esi, dword [ebp - 0x20]
mov eax, dword [0x1027a66c]
mov ecx, dword [0x1027a670]
xor edx, edx
div ecx
mov ecx, 0x1061f089
mul ecx
mov eax, edx
shr eax, 0x1c
add eax, 0xb8aab81b
xor eax, 0x2b7afae0
mov dword [ebp - 0x28], eax
push eax
mov edx, esp
mov dword [ebp - 0x2c], edx
sub esp, 0x10
mov eax, esp
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x38], ecx
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x34], ecx
sub esp, 0x18
mov edi, esp
mov dword [ebp - 0x30], edi
mov dword [edx], esi
mov edx, dword [str.vi65re41vwer56]
mov dword [eax], edx
mov edx, dword [0x1022604b]
mov dword [eax + 4], edx
mov edx, dword [0x1022604f]
mov dword [eax + 8], edx
mov dx, word [0x10226053]
mov word [eax + 0xc], dx
mov dl, byte [0x10226055]
mov byte [eax + 0xe], dl
sub esp, 4
mov dword [esp], eax
call fcn.10005f80
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ecx]
mov dword [ebp - 0x24], ecx
cmp eax, 0x6e7967b5
jbe 0x100099ff
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x10], 0
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10005f80
jmp 0x10009abc
mov eax, dword [0x1027a674]
mov esi, dword [0x1027a678]
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
imul eax, eax, 0xcfd43c74
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, 0x37c86ee1
add eax, ecx
imul eax, eax, 0x5bf53781
cmp eax, 0x65329bfa
jbe 0x10009c6e
mov eax, dword [0x1027a67c]
sub eax, dword [0x1027a680]
sub eax, 0xcff599ea
mov ecx, 0x84cea241
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x163e9f
and ecx, 0xffe9c160
or eax, ecx
xor eax, 0x8390bce3
cmp eax, 0xb9855466
ja 0x10009c6e
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x34]
mov dword [ebp - 0x10], 1
sub esp, 0xc
mov eax, esp
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10053000
add esp, 0xc
jmp 0x10009b74
mov eax, dword [0x1027a684]
mov ecx, dword [str.6_kD]
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
and eax, 0xc8a1d91e
or ecx, 0x375e26e1
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
mov edx, eax
and edx, 0xf3cb6f61
mov ecx, eax
or ecx, 0xf3cb6f61
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xc34909e
or eax, 0xc34909e
imul eax, edx
add eax, ecx
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, 0x4e87f28c
add eax, ecx
cmp eax, 0xb18044f7
ja 0x10009c73
mov ecx, dword [ebp - 0x38]
sub esp, 4
mov eax, esp
mov dword [eax], ecx
mov ecx, 0x10290acc
call fcn.10007f10
mov ecx, dword [ebp - 0x38]
call fcn.100061b0
mov ecx, dword [ebp - 0x30]
call fcn.100061b0
mov ecx, dword [ebp - 0x34]
call fcn.100061b0
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [ebp - 0x20]
push eax
mov edx, esp
sub esp, 0x10
mov eax, esp
sub esp, 0x18
mov ecx, esp
mov dword [edx], esi
mov edx, dword [str.vi65re41vwer56]
mov dword [eax], edx
mov edx, dword [0x1022604b]
mov dword [eax + 4], edx
mov edx, dword [0x1022604f]
mov dword [eax + 8], edx
mov dx, word [0x10226053]
mov word [eax + 0xc], dx
mov dl, byte [0x10226055]
mov byte [eax + 0xe], dl
sub esp, 4
mov dword [esp], eax
call fcn.10005f80
jmp 0x100099ff
jmp 0x10009b0d
mov eax, dword [ebp - 0x38]
lea ecx, [0x10290acc]
sub esp, 4
mov dword [esp], eax
call fcn.10007f10
mov ecx, dword [ebp - 0x38]
call fcn.100061b0
mov ecx, dword [ebp - 0x30]
call fcn.100061b0
mov ecx, dword [ebp - 0x34]
call fcn.100061b0
jmp 0x10009be1