Function at 0x1009d160
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x60
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], 0x100b0690
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov ecx, dword [0x10288600]
or ecx, dword [0x10288604]
add ecx, 0x690e99df
mov edx, ecx
and edx, 0xa2959a97
mov eax, ecx
or eax, 0xa2959a97
xor eax, 0xffffffff
imul eax, edx
mov edx, ecx
and edx, 0x5d6a6568
or ecx, 0x5d6a6568
imul ecx, edx
add ecx, eax
mov eax, ecx
xor eax, 0x5f718978
and eax, ecx
cmp eax, 0x9a5ea134
jae 0x1009d6ad
mov esi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x28]
mov eax, dword [0x10288608]
mov ecx, dword [0x1028860c]
xor edx, edx
div ecx
xor eax, 0x81280048
and eax, 0x85a85949
add eax, 0x8aca640e
mov dword [ebp - 0x40], eax
push eax
mov eax, esp
push eax
mov ecx, esp
mov dword [ebp - 0x50], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x4c], 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 - 0x60], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x5c], ecx
sub esp, 8
mov ecx, esp
mov dword [ebp - 0x44], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x58], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0x38]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x50]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x4c]
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 ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
add esp, 8
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], eax
call fcn.1003e3f0
mov eax, dword [ebp - 0x40]
cmp eax, 0xdb37621a
jae 0x1009d6ad
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x10], 0
sub esp, 0x14
mov eax, esp
mov dword [eax + 0x10], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
mov dword [eax + 0xc], 0x800
call fcn.100a1cc0
add esp, 0x14
mov word [ebp - 0x62], ax
jmp 0x1009d2f5
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x44]
mov dx, word [ebp - 0x62]
mov word [eax], dx
call fcn.10027aa0
mov eax, dword [ebp - 0x5c]
movsx eax, byte [eax]
cmp eax, 0
jge 0x1009d390
mov eax, dword [0x10288610]
imul eax, dword [0x10288614]
add eax, 0x23238cd0
add eax, 0x2bb79975
add eax, 0xcc67d9e7
sub eax, 0x2bb79975
imul eax, eax, 0xd396101b
cmp eax, 0xb0adffd8
je 0x1009d713
mov ecx, dword [ebp - 0x50]
mov eax, dword [0x10288618]
xor edx, edx
div dword [0x1028861c]
mov edx, dword [ebp - 0x4c]
and eax, 0xc889ef42
add eax, 0x66f797f5
add eax, 0xc9ff6961
mov edx, dword [edx]
mov dword [edx], 2
mov ecx, dword [ecx]
mov dword [ecx], 0
cmp eax, 0x3f47704
jb 0x1009d713
mov dword [ebp - 0x10], 0xffffffff
jmp 0x1009d611
mov ecx, dword [0x10288620]
mov edx, dword [0x10288624]
mov eax, ecx
and eax, edx
xor ecx, edx
or eax, ecx
mov ecx, 0x12380100
xor edx, edx
div ecx
xor ecx, ecx
sub ecx, eax
add ecx, 0x237c736d
xor eax, eax
sub eax, ecx
add eax, 0x305e5644
cmp eax, 0x25a9e4c9
je 0x1009d72e
mov edx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x5c]
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.100b7698
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x60]
add esp, 0x10
mov esi, eax
mov eax, dword [ebp - 0x54]
mov edx, dword [edx]
mov dword [edx], esi
cmp dword [eax], ecx
je 0x1009d4a5
mov edx, dword [0x10288630]
sub edx, dword [0x10288634]
mov ecx, edx
xor ecx, 0xffffffff
mov eax, ecx
and eax, 0xb3782d97
and edx, 0x4c87d268
or eax, edx
xor eax, 0x580351b7
or ecx, 0x148483df
xor ecx, 0xffffffff
or eax, ecx
sub eax, 0xe42d1518
xor eax, 0xffffffff
or eax, 0xdc57b7ec
xor eax, 0xffffffff
cmp eax, 0x6f80cc35
jae 0x1009d765
mov ecx, dword [ebp - 0x58]
mov eax, dword [0x10288638]
xor edx, edx
div dword [0x1028863c]
or eax, 0xa031c16d
add eax, 0x5750d500
mov edx, eax
and edx, 0x223f796b
shl edx, 1
xor eax, 0x223f796b
add eax, edx
cmp dword [ecx], 0
setne cl
mov byte [ebp - 0x63], cl
cmp eax, 0x72e92728
je 0x1009d456
mov al, byte [ebp - 0x63]
test al, 1
jne 0x1009d4a5
jmp 0x1009d4bb
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ecx]
mov dword [ecx], 2
mov eax, dword [eax]
mov dword [eax], 0
mov ecx, dword [ebp - 0x5c]
mov eax, dword [0x10288658]
or eax, dword [0x1028865c]
mov esi, eax
xor esi, 0xffffffff
and esi, 0x76c3eae7
mov edx, eax
and edx, 0x893c1518
imul edx, esi
mov esi, eax
and esi, 0x76c3eae7
or eax, 0x76c3eae7
imul eax, esi
add eax, edx
mov esi, 0xf7c2b8f1
xor edx, edx
div esi
imul eax, eax, 0x91b1242b
mov cl, byte [ecx + 1]
mov byte [ebp - 0x64], cl
cmp eax, 0x52b70c1b
ja 0x1009d4bb
mov al, byte [ebp - 0x64]
test al, 1
jne 0x1009d521
jmp 0x1009d57b
mov eax, dword [0x10288660]
and eax, dword [0x10288664]
mov ecx, eax
xor ecx, 0xffffffff
or ecx, 0xc9b9c663
xor ecx, 0xffffffff
or eax, 0x3646399c
xor eax, 0xffffffff
or ecx, eax
xor ecx, 0xffffffff
mov eax, ecx
and eax, 0x181fe830
or ecx, 0x181fe830
add eax, ecx
sub eax, 0x4e2628e6
sub eax, 0x496d6bc9
add eax, 0x4e2628e6
cmp eax, 0x3c7aed2e
je 0x1009d76a
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
mov dword [eax], 2
mov eax, dword [0x10288670]
imul eax, dword [0x10288674]
add eax, 0xcd33df8d
add eax, 0x68e01b91
sub eax, 0xcd33df8d
add eax, 0x575abc9a
sub eax, 0xc559f22c
sub eax, 0x575abc9a
xor eax, 0x98ab611
cmp eax, 0xfd730a63
je 0x1009d77a
mov eax, dword [0x10288678]
xor eax, dword [0x1028867c]
mov ecx, eax
xor ecx, 0x35f3684d
xor ecx, 0xffffffff
and ecx, 0x35f3684d
shl ecx, 1
sub ecx, 0x35f3684d
sub eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x4ecfec33
and eax, 0xb13013cc
or ecx, eax
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
and eax, 0x9e75b8f7
xor eax, 0xffffffff
cmp eax, 0x3b9dffbb
jbe 0x1009d77a
mov dword [ebp - 0x10], 0xffffffff
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
test al, 1
jne 0x1009d636
jmp 0x1009d688
mov ecx, dword [ebp - 0x4c]
mov eax, dword [0x10288688]
sub eax, dword [0x1028868c]
mov esi, 0x9d5926a
xor edx, edx
div esi
mov edx, eax
and edx, 0xcd39fbf4
shl edx, 1
xor eax, 0xcd39fbf4
add eax, edx
mov edx, eax
and edx, 0xf8e036ce
shl edx, 1
xor eax, 0xf8e036ce
add eax, edx
mov ecx, dword [ecx]
mov edx, dword [ecx]
or edx, 1
mov dword [ecx], edx
cmp eax, 0x7b14d9cf
jb 0x1009d77f
jmp 0x1009d688
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 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 - 0x6c], edx
push eax
mov edx, esp
sub esp, 8
mov edi, esp
mov dword [ebp - 0x68], edi
mov edi, dword [ebp - 0x38]
mov dword [esi], edi
mov edi, dword [ebp - 0x6c]
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 ecx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
add esp, 8
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], eax
call fcn.1003e3f0
jmp 0x1009d207
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ecx]
mov dword [ecx], 2
mov eax, dword [eax]
mov dword [eax], 0
jmp 0x1009d347
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
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.100b7698
add esp, 0x10
mov ecx, eax
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov dword [eax], ecx
jmp 0x1009d3cb
jmp 0x1009d456
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
mov dword [eax], 2
jmp 0x1009d570
jmp 0x1009d5b5
mov eax, dword [ebp - 0x4c]
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 0x1009d636