Function at 0x1009fa30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x70
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x28], eax
lea eax, [ebp + 0x14]
mov dword [ebp - 0x24], eax
lea eax, [ebp + 0xc]
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], 0x100b0750
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [0x10288960]
add eax, dword [0x10288964]
or eax, 0xd2c28fb
mov ecx, 0xa92ab473
xor edx, edx
div ecx
and eax, 0x3693aeb8
cmp eax, 0x60267a3
ja 0x1009fe8b
mov esi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x28]
mov eax, dword [0x10288968]
mov ecx, dword [0x1028896c]
sub eax, ecx
and eax, 0xcde32e43
mov ecx, 0xb10af24d
mul ecx
shr edx, 0x1e
imul eax, edx, 0x25c23aa7
mov dword [ebp - 0x44], eax
push eax
mov eax, esp
push eax
mov ecx, esp
mov dword [ebp - 0x54], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x50], ecx
push eax
mov edi, esp
mov dword [ebp - 0x48], edi
push eax
mov edx, esp
sub esp, 0x20
mov ecx, esp
mov dword [ebp - 0x64], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x60], ecx
sub esp, 8
mov ecx, esp
mov dword [ebp - 0x4c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x5c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x38]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x54]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x50]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov dword [edi], ebx
mov dword [edx], esi
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100a1b70
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x48]
add esp, 8
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], eax
call fcn.1003e3f0
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax]
call fcn.1004a3a0
mov ecx, eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x40], ecx
cmp eax, 0x2fd456b
je 0x1009fab2
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x10], 0
sub esp, 0x14
mov eax, esp
mov dword [eax + 0x10], ebx
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.100a1cc0
add esp, 0x14
mov word [ebp - 0x66], ax
jmp 0x1009fbb2
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x4c]
mov dx, word [ebp - 0x66]
mov esi, dword [0x10288978]
xor edi, edi
sub edi, dword [0x1028897c]
sub esi, edi
mov edi, esi
and edi, 0xea49f77b
mov ebx, esi
xor ebx, 0x15b60884
add esi, ebx
sub esi, edi
and esi, 0xc2a39206
sub esi, 0xb1b6d15e
add esi, 0x35da93cc
add esi, 0xb1b6d15e
mov dword [ebp - 0x6c], esi
mov word [eax], dx
call fcn.10027aa0
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x6c]
movsx ecx, byte [ecx]
cmp ecx, 0
setl cl
mov byte [ebp - 0x67], cl
cmp eax, 0x617f7487
ja 0x1009fbb2
mov al, byte [ebp - 0x67]
test al, 1
jne 0x1009fc30
jmp 0x1009fc4b
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov ecx, dword [ecx]
mov dword [ecx], 2
mov eax, dword [eax]
mov dword [eax], 0
jmp 0x1009fd58
mov edx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x64]
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x60]
movsx ecx, byte [ecx]
sub esp, 0x10
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.100b7430
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x64]
add esp, 0x10
mov esi, eax
mov eax, dword [ebp - 0x5c]
mov edx, dword [edx]
mov dword [edx], esi
cmp dword [eax], ecx
je 0x1009fd16
mov eax, dword [0x10288990]
xor edx, edx
div dword [0x10288994]
mov ecx, 0x5c9f4080
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
and eax, 0xefd3a73c
xor ecx, 0xffffffff
and ecx, 0x102c58c3
or eax, ecx
xor eax, 0xffffffff
xor eax, 0x7b7bd850
cmp eax, 0x1d975a62
jbe 0x1009fefb
mov ecx, dword [ebp - 0x58]
mov eax, dword [0x10288998]
or eax, dword [0x1028899c]
or eax, 0xc99d08a7
and eax, 0x779360ee
xor eax, 0xf073b596
cmp dword [ecx], 0
setne cl
mov byte [ebp - 0x6d], cl
cmp eax, 0x5fd9d5c6
jb 0x1009fefb
mov al, byte [ebp - 0x6d]
test al, 1
jne 0x1009fd16
jmp 0x1009fd09
mov eax, dword [ebp - 0x60]
test byte [eax + 1], 1
je 0x1009fd21
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov dword [eax], 2
mov eax, dword [0x102889b0]
xor eax, dword [0x102889b4]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0xe3461a5b
and eax, 0x1cb9e5a4
sub eax, ecx
and eax, 0x1972d017
or eax, 0x8e4871ff
cmp eax, 0xa071faee
jae 0x1009ff00
jmp 0x1009fd58
mov dword [ebp - 0x10], 0xffffffff
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov edx, dword [0x102889c8]
sub edx, dword [0x102889cc]
imul edx, edx, 0x7bfcf5b1
sub edx, 0xadf5eaa
add edx, 0x61f21bb0
sub edx, 0x53802a53
sub edx, 0x61f21bb0
mov dword [ebp - 0x74], edx
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100a5710
add esp, 8
mov cl, al
mov eax, dword [ebp - 0x74]
mov byte [ebp - 0x6e], cl
cmp eax, 0xf7c19c6a
jae 0x1009ff05
mov al, byte [ebp - 0x6e]
test al, 1
jne 0x1009fdc7
jmp 0x1009fdd3
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov ecx, dword [eax]
or ecx, 1
mov dword [eax], ecx
mov eax, dword [0x102889d0]
xor edx, edx
div dword [0x102889d4]
mov edx, eax
xor edx, 0xffffffff
and edx, 0xe88d9deb
mov ecx, eax
and ecx, 0x17726214
imul ecx, edx
mov edx, eax
and edx, 0xe88d9deb
or eax, 0xe88d9deb
imul eax, edx
add eax, ecx
xor eax, 0xef295263
sub eax, 0xfe7561a4
cmp eax, 0x28e8afef
jbe 0x1009ff22
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x20]
mov eax, dword [0x102889d8]
mov edi, dword [0x102889dc]
mov esi, eax
and esi, edi
or eax, edi
xor esi, 0xffffffff
and esi, eax
mov eax, esi
xor eax, 0xffffffff
and eax, 0x9a14d7be
and esi, 0x65eb2841
sub esi, eax
mov eax, esi
and eax, 0x91844443
or esi, 0x91844443
add eax, esi
sub eax, 0xa927ff3d
mov esi, dword [edx]
mov dword [ecx], esi
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
cmp eax, 0xfd405975
jae 0x1009fe1d
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x20
mov ebx, dword [ebp - 0x28]
push eax
mov esi, esp
push eax
mov ecx, esp
push eax
mov eax, esp
push eax
mov edx, esp
mov dword [ebp - 0x78], edx
push eax
mov edx, esp
sub esp, 8
mov edi, esp
mov dword [ebp - 0x7c], edi
mov edi, dword [ebp - 0x38]
mov dword [esi], edi
mov edi, dword [ebp - 0x78]
mov esi, dword [ebp - 0x30]
mov dword [ecx], esi
mov esi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x2c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov dword [edi], ebx
mov dword [edx], esi
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100a1b70
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x78]
add esp, 8
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], eax
call fcn.1003e3f0
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax]
call fcn.1004a3a0
jmp 0x1009fab2
jmp 0x1009fcc8
jmp 0x1009fd53
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100a5710
add esp, 8
jmp 0x1009fd5f
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp 0x1009fe1d