Function at 0x100a2850
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x70
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x2c], eax
lea eax, [ebp + 0x14]
mov dword [ebp - 0x28], eax
lea eax, [ebp + 0xc]
mov dword [ebp - 0x24], eax
mov eax, esp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x100b4cf0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [0x1028d9d0]
mov edx, dword [0x1028d9d4]
mov esi, eax
xor esi, edx
xor esi, 0xffffffff
mov ecx, edx
and ecx, esi
shl ecx, 1
sub ecx, edx
sub eax, ecx
and eax, 0xcff63d26
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x4864dc7e
and eax, 0xb79b2381
sub eax, ecx
mov ecx, eax
xor ecx, 0x69beadc
xor ecx, 0xffffffff
and ecx, 0x69beadc
shl ecx, 1
sub ecx, 0x69beadc
sub eax, ecx
cmp eax, 0x4eb11a52
je 0x100a2dc9
mov esi, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [0x1028d9d8]
mov edx, dword [0x1028d9dc]
mov ecx, eax
not ecx
and ecx, edx
not edx
and eax, edx
sub eax, ecx
add eax, 0xbafca31e
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 - 0x4c], edi
push eax
mov edx, esp
sub esp, 0x318
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 - 0x48], 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 - 0x3c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x54]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x50]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov dword [edi], ebx
mov dword [edx], esi
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.1005d720
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
add esp, 8
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], eax
call fcn.1003ed50
mov eax, dword [ebp - 0x44]
cmp eax, 0xada34cbf
jae 0x100a2dc9
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x48]
mov dword [ebp - 0x10], 0
sub esp, 0x14
mov eax, esp
mov dword [eax + 0x10], edi
mov dword [eax + 0xc], esi
mov dword [eax + 8], edx
mov dword [eax], ecx
mov dword [eax + 4], 0x300
call fcn.100ac030
add esp, 0x14
mov word [ebp - 0x66], ax
jmp 0x100a29f1
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x48]
mov dx, word [ebp - 0x66]
mov esi, dword [0x1028d9e8]
mov ebx, dword [0x1028d9ec]
mov edi, esi
and edi, ebx
shl edi, 1
xor esi, ebx
add esi, edi
add esi, 0xe245ce5
xor esi, 0xffffffff
and esi, 0x4afaa04a
xor esi, 0xffffffff
xor esi, 0x7c7c9a22
mov dword [ebp - 0x6c], esi
mov word [eax], dx
call fcn.100284c0
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x6c]
movsx ecx, byte [ecx]
cmp ecx, 0
sete cl
mov byte [ebp - 0x67], cl
cmp eax, 0xbb28c461
ja 0x100a2e2f
mov al, byte [ebp - 0x67]
test al, 1
jne 0x100a2a61
jmp 0x100a2aff
mov eax, dword [0x1028d9f0]
add eax, dword [0x1028d9f4]
mov ecx, 0x821a7863
xor edx, edx
div ecx
mov edx, eax
and edx, 0xdf34dc67
mov ecx, eax
or ecx, 0xdf34dc67
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x20cb2398
or eax, 0x20cb2398
imul eax, edx
add eax, ecx
add eax, 0xfd163350
add eax, 1
cmp eax, 0x1309e66c
jbe 0x100a2e46
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov eax, dword [0x1028d9f8]
and eax, dword [0x1028d9fc]
imul eax, eax, 0x3546e13c
xor eax, 0x8e00d443
mov esi, eax
xor esi, 0xffffffff
and esi, 0x3fed8bb7
and eax, 0xc0127448
sub eax, esi
mov edx, dword [edx]
mov dword [edx], 2
mov ecx, dword [ecx]
xorps xmm0, xmm0
movss dword [ecx], xmm0
cmp eax, 0x693af901
jb 0x100a2e46
jmp 0x100a2c8d
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x5c]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.100b3230
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x58]
add esp, 0xc
fstp dword [ebp - 0x20]
movss xmm0, dword [ebp - 0x20]
mov edx, dword [edx]
movss dword [edx], xmm0
cmp dword [eax], ecx
je 0x100a2c7d
mov eax, dword [0x1028da00]
xor edx, edx
div dword [0x1028da04]
mov edx, eax
mov eax, edx
xor eax, 0xffffffff
mov ecx, eax
and ecx, 0x509f2edc
and edx, 0xaf60d123
or ecx, edx
xor ecx, 0x54e5f4f6
or eax, 0xfb8525d5
xor eax, 0xffffffff
or ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
xor eax, 0xffffffff
or eax, 0x77ff9241
xor ecx, 0xffffffff
or ecx, 0x88006dbe
and eax, ecx
xor eax, 0xffffffff
xor eax, 0x57616795
cmp eax, 0x6d16da87
jb 0x100a2e62
mov eax, dword [ebp - 0x5c]
cmp dword [eax], 0
jne 0x100a2c7d
mov ecx, dword [0x1028da10]
mov esi, dword [0x1028da14]
mov edi, esi
xor edi, 0xffffffff
mov edx, ecx
and edx, edi
mov eax, ecx
or eax, edi
xor eax, 0xffffffff
imul eax, edx
mov edx, ecx
and edx, esi
or ecx, esi
imul ecx, edx
add ecx, eax
and ecx, 0x8508bcb9
mov eax, ecx
xor eax, 0xffffffff
or eax, 0x97331a9e
xor ecx, 0xffffffff
or ecx, 0x97331a9e
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, eax
xor ecx, 0x1439b0e9
xor ecx, 0xffffffff
and ecx, 0x1439b0e9
shl ecx, 1
sub ecx, 0x1439b0e9
sub eax, ecx
cmp eax, 0x21fe02d3
je 0x100a2e67
mov ecx, dword [ebp - 0x60]
mov eax, dword [0x1028da18]
mov esi, dword [0x1028da1c]
xor esi, 0xffffffff
mov edx, eax
xor edx, esi
and edx, eax
mov eax, edx
xor eax, 0xffffffff
or eax, 0x90833d5e
xor edx, 0xffffffff
or edx, 0x90833d5e
xor eax, 0xffffffff
xor edx, 0xffffffff
or eax, edx
xor eax, 0x19c795f5
xor eax, 0x1c719cc8
mov cl, byte [ecx + 1]
mov byte [ebp - 0x6d], cl
cmp eax, 0x8b2717a2
jae 0x100a2c20
mov al, byte [ebp - 0x6d]
test al, 1
jne 0x100a2c7d
jmp 0x100a2c88
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov dword [eax], 2
jmp 0x100a2c8d
mov dword [ebp - 0x10], 0xffffffff
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov edx, dword [0x1028da28]
or edx, dword [0x1028da2c]
imul edx, edx, 0x5c51018c
mov esi, edx
xor esi, 0xc03dde3a
and edx, 0x3fc221c5
shl edx, 1
sub edx, esi
xor esi, esi
sub esi, edx
add esi, 0xe6d3cfd4
xor edx, edx
sub edx, esi
mov dword [ebp - 0x74], edx
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100a9340
add esp, 8
mov cl, al
mov eax, dword [ebp - 0x74]
mov byte [ebp - 0x6e], cl
cmp eax, 0xb8dacbc0
jae 0x100a2c94
mov al, byte [ebp - 0x6e]
test al, 1
jne 0x100a2d04
jmp 0x100a2d5c
mov eax, dword [0x1028da30]
mov esi, dword [0x1028da34]
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
or eax, 0x91f286d7
imul eax, eax, 0xfe06340f
xor eax, 0xffffffff
or eax, 0xf3f59d6f
xor eax, 0xffffffff
cmp eax, 0x570e285f
ja 0x100a2e6c
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov ecx, dword [eax]
or ecx, 1
mov dword [eax], ecx
mov eax, dword [0x1028da40]
add eax, dword [0x1028da44]
mov edx, eax
and edx, 0xb737d9ac
mov ecx, eax
or ecx, 0xb737d9ac
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x48c82653
or eax, 0x48c82653
imul eax, edx
add eax, ecx
or eax, 0xa4b7d222
sub eax, 0x4d3fb51d
cmp eax, 0xe1a460f1
ja 0x100a2e9d
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x24]
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 ebx, dword [ebp - 0x2c]
push eax
mov esi, esp
push eax
mov ecx, esp
push eax
mov eax, esp
push eax
mov edx, esp
mov dword [ebp - 0x7c], edx
push eax
mov edx, esp
sub esp, 8
mov edi, esp
mov dword [ebp - 0x78], edi
mov edi, dword [ebp - 0x3c]
mov dword [esi], edi
mov edi, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x34]
mov dword [ecx], esi
mov esi, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x30]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov dword [edi], ebx
mov dword [edx], esi
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.1005d720
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x78]
add esp, 8
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], eax
call fcn.1003ed50
jmp 0x100a2902
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x60]
mov dx, word [ebp - 0x66]
mov word [eax], dx
call fcn.100284c0
jmp 0x100a29f1
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov ecx, dword [ecx]
mov dword [ecx], 2
mov eax, dword [eax]
xorps xmm0, xmm0
movss dword [eax], xmm0
jmp 0x100a2ab0
jmp 0x100a2ba3
jmp 0x100a2c20
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov esi, dword [eax]
mov edx, esi
xor edx, 0xffffffff
mov ecx, edx
and ecx, 0x7e7ac17a
and esi, 0x81853e85
or ecx, esi
xor ecx, 0x7e7ac17b
or edx, 0xfffffffe
xor edx, 0xffffffff
or ecx, edx
mov dword [eax], ecx
jmp 0x100a2d50
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp 0x100a2da4