Function at 0x1009e850
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x68
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], 0x100b06f0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
push eax
mov esi, esp
push eax
mov edx, esp
mov eax, edx
mov dword [ebp - 0x64], eax
push eax
mov ecx, esp
mov eax, ecx
mov dword [ebp - 0x60], eax
push eax
mov eax, esp
mov dword [ebp - 0x48], eax
push eax
mov eax, esp
sub esp, 0x20
mov edi, esp
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x5c], edi
push eax
mov edi, esp
mov dword [ebp - 0x58], edi
sub esp, 8
mov ebx, esp
mov edi, ebx
mov dword [ebp - 0x54], edi
push eax
mov edi, esp
mov dword [ebp - 0x50], edi
push eax
mov edi, esp
mov dword [ebp - 0x4c], edi
mov edi, dword [ebp - 0x38]
mov dword [esi], edi
mov edi, dword [ebp - 0x48]
mov esi, dword [ebp - 0x30]
mov dword [edx], esi
mov esi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x2c]
mov dword [ecx], edx
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x28]
mov dword [edi], ecx
mov ecx, dword [ebp - 0x20]
mov dword [eax], edx
sub esp, 8
mov eax, esp
mov dword [eax + 4], esi
mov dword [eax], ecx
call fcn.100a1b70
mov eax, dword [ebp - 0x48]
add esp, 8
mov ecx, dword [eax]
sub esp, 4
mov eax, esp
mov dword [eax], ebx
call fcn.1003e3f0
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax]
call fcn.1004a3a0
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x44]
mov edi, eax
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 - 0x3e], ax
jmp 0x1009e96e
mov ecx, dword [0x102887d0]
mov eax, dword [0x102887d4]
sub ecx, 0x2f4d1cc1
sub ecx, eax
add ecx, 0x2f4d1cc1
or ecx, 0x47574ed2
xor ecx, 0xfd3b0716
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xed8b90a7
and ecx, 0x12746f58
or eax, ecx
xor eax, 0xb0faf55
cmp eax, 0xe1576c3c
ja 0x1009ee9d
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
mov dx, word [ebp - 0x3e]
mov word [eax], dx
call fcn.10027aa0
mov eax, dword [ebp - 0x58]
movsx eax, byte [eax]
cmp eax, 0
jge 0x1009e9f8
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
mov ecx, dword [ecx]
mov dword [ecx], 2
mov eax, dword [eax]
mov dword [eax + 4], 0
mov dword [eax], 0
jmp 0x1009ed1c
mov edx, dword [0x102887e0]
mov ecx, dword [0x102887e4]
mov eax, edx
and eax, ecx
shl eax, 1
add edx, ecx
sub edx, eax
mov ecx, edx
xor ecx, 0xffffffff
mov eax, ecx
and eax, 0xbe5202ae
and edx, 0x41adfd51
or eax, edx
xor eax, 0x1d8824dc
or ecx, 0x5c25d98d
xor ecx, 0xffffffff
or eax, ecx
and eax, 0x71bb9050
mov ecx, eax
and ecx, 0x6d8339c1
shl ecx, 1
xor eax, 0x6d8339c1
add eax, ecx
cmp eax, 0x39159ee5
jbe 0x1009eeb4
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x50]
mov edi, dword [0x102887e8]
mov eax, dword [0x102887ec]
xor edi, eax
mov eax, dword [ebp - 0x58]
and edi, 0x84288538
imul edi, edi, 0xc7eba5be
mov dword [ebp - 0x6c], edi
movsx edi, byte [eax]
sub esp, 0x10
mov eax, esp
mov dword [eax + 0xc], ebx
mov dword [eax + 8], edi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.100b74d4
mov ecx, dword [ebp - 0x4c]
add esp, 0x10
mov edi, eax
mov eax, dword [ebp - 0x6c]
mov ebx, edx
mov edx, dword [ebp - 0x5c]
mov esi, dword [esi]
mov dword [esi + 4], ebx
mov dword [esi], edi
cmp dword [ecx], edx
sete cl
mov byte [ebp - 0x65], cl
cmp eax, 0x977aa329
jbe 0x1009ea53
mov al, byte [ebp - 0x65]
test al, 1
jne 0x1009ebf6
jmp 0x1009ead0
mov ecx, dword [ebp - 0x50]
mov edx, dword [0x102887f8]
mov esi, dword [0x102887fc]
xor edx, 0xffffffff
mov eax, esi
xor eax, 0xffffffff
xor esi, 0xffffffff
or eax, esi
and edx, eax
xor edx, 0xffffffff
add edx, 0x1454df2a
mov esi, edx
xor esi, 0xffffffff
and esi, 0x46c200ca
mov eax, edx
and eax, 0xb93dff35
imul eax, esi
mov esi, edx
and esi, 0x46c200ca
or edx, 0x46c200ca
imul edx, esi
add edx, eax
mov eax, edx
xor eax, 0x1139de13
and eax, edx
cmp dword [ecx], 0
setne cl
mov byte [ebp - 0x6d], cl
cmp eax, 0xbe63b434
je 0x1009ead0
mov al, byte [ebp - 0x6d]
test al, 1
jne 0x1009ebf6
jmp 0x1009eb4c
mov eax, dword [0x10288800]
xor edx, edx
div dword [0x10288804]
mov ecx, eax
and ecx, 0xda41e64a
shl ecx, 1
add eax, 0xda41e64a
sub eax, ecx
mov ecx, eax
and ecx, 0x5c21dbb2
mov edx, eax
xor edx, 0xa3de244d
add eax, edx
sub eax, ecx
sub eax, 0xf76dd014
cmp eax, 0x87552be6
je 0x1009eeec
mov ecx, dword [ebp - 0x58]
mov eax, dword [0x10288808]
mov edi, dword [0x1028880c]
mov edx, eax
xor edx, 0xffffffff
mov esi, edi
and esi, edx
mov ebx, edi
xor ebx, 0xffffffff
mov edx, eax
and edx, ebx
imul edx, esi
mov esi, eax
and esi, edi
or eax, edi
imul eax, esi
add eax, edx
add eax, 0x2019fc9b
mov edx, eax
add edx, 1
xor eax, 0xffffffff
or eax, 0x8dfe54ca
add eax, edx
sub eax, 0x9db91427
mov cl, byte [ecx + 1]
mov byte [ebp - 0x6e], cl
cmp eax, 0x837ddb2b
jb 0x1009eeec
mov al, byte [ebp - 0x6e]
test al, 1
jne 0x1009ebf6
jmp 0x1009ecb1
mov eax, dword [0x10288810]
mov esi, dword [0x10288814]
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
sub eax, 0x3b87f63b
add eax, 0x9a38bad8
add eax, 0x3b87f63b
sub eax, 0x304138d3
sub eax, 0x6b9a191a
cmp eax, 0x233cb6a7
je 0x1009eef1
mov ecx, dword [ebp - 0x60]
mov edx, dword [0x10288818]
add edx, dword [0x1028881c]
mov eax, edx
xor eax, 0xffffffff
and eax, 0xe8527fa7
and edx, 0x17ad8058
sub edx, eax
mov eax, edx
and eax, 0xdbc8904d
mov esi, edx
xor esi, 0x24376fb2
add edx, esi
sub edx, eax
mov eax, edx
xor eax, 0xffffffff
mov esi, edx
xor esi, 0xffffffff
or eax, esi
xor eax, 0xffffffff
or eax, 0x316324b5
xor edx, 0xffffffff
or edx, 0xce9cdb4a
and eax, edx
xor eax, 0xffffffff
mov ecx, dword [ecx]
mov dword [ecx], 2
cmp eax, 0xbb1f42c4
jbe 0x1009ec43
jmp 0x1009ecb1
mov eax, dword [0x10288820]
mov esi, dword [0x10288824]
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 ecx, eax
and ecx, 0xa67d74cc
xor eax, 0xa67d74cc
or ecx, eax
xor ecx, 0x83e8d2b5
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
xor eax, 0xffffffff
or eax, 0xed0974bb
and ecx, 0xed0974bb
xor ecx, 0xffffffff
and eax, ecx
xor eax, 0xffffffff
cmp eax, 0xda30a5c
jbe 0x1009ef01
mov dword [ebp - 0x10], 0xffffffff
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov edx, dword [0x10288838]
sub edx, dword [0x1028883c]
sub edx, 0x7a224cad
sub edx, 0x693a85cd
imul edx, edx, 0xd5b244a5
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 - 0x6f], cl
cmp eax, 0x257fa967
je 0x1009ef06
mov al, byte [ebp - 0x6f]
test al, 1
jne 0x1009ed7f
jmp 0x1009ee30
mov eax, dword [0x10288840]
xor edx, edx
div dword [0x10288844]
add eax, 0x27dfbf19
and eax, 0xad7d5f3
sub eax, 0xd32501ee
add eax, 0xfab353d
add eax, 0xd32501ee
cmp eax, 0xe0f9b1da
jae 0x1009ef23
mov ecx, dword [ebp - 0x60]
mov eax, dword [0x10288848]
imul eax, dword [0x1028884c]
mov esi, eax
xor esi, 0xffffffff
and esi, 0xd9246bca
mov edx, eax
and edx, 0x26db9435
imul edx, esi
mov esi, eax
and esi, 0xd9246bca
or eax, 0xd9246bca
imul eax, esi
add eax, edx
mov edx, eax
xor edx, 0x278175f
xor edx, 0xffffffff
and edx, 0x278175f
shl edx, 1
sub edx, 0x278175f
sub eax, edx
add eax, 0x245d075d
mov ecx, dword [ecx]
mov esi, dword [ecx]
mov edx, esi
or edx, 1
xor edx, 0xffffffff
or esi, 1
xor esi, 0xffffffff
or edx, esi
xor edx, 0xffffffff
mov dword [ecx], edx
cmp eax, 0xcdb10e66
je 0x1009ef23
jmp 0x1009ee30
mov eax, dword [0x10288850]
sub eax, dword [0x10288854]
mov edx, eax
and edx, 0xa30f1cf5
mov ecx, eax
or ecx, 0xa30f1cf5
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x5cf0e30a
or eax, 0x5cf0e30a
imul eax, edx
add eax, ecx
and eax, 0xc0663bda
add eax, 0x5b296123
cmp eax, 0x78c3d366
jb 0x1009ef3b
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x20]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
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 ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x58]
mov dx, word [ebp - 0x3e]
mov word [eax], dx
call fcn.10027aa0
jmp 0x1009e9b5
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x58]
movsx esi, byte [eax]
sub esp, 0x10
mov eax, esp
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.100b74d4
add esp, 0x10
mov ecx, eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov dword [eax + 4], edx
mov dword [eax], ecx
jmp 0x1009ea53
jmp 0x1009eb8e
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
mov dword [eax], 2
jmp 0x1009ec43
jmp 0x1009ed1c
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 0x1009ed23
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
mov edx, dword [eax]
mov ecx, edx
and ecx, 1
xor edx, 1
or ecx, edx
mov dword [eax], ecx
jmp 0x1009edb0
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 0x1009ee78