Function at 0x100686a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x58
mov esi, esp
mov dword [esi], ebp
mov dword [esi + 0x30], ecx
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x34], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x38], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x3c], eax
mov eax, esp
mov dword [esi + 0x44], eax
mov dword [esi + 0x50], 0xffffffff
lea eax, [esi + 0x48]
mov dword [esi + 0x4c], 0x1009a620
mov ecx, dword fs:[0]
mov dword [esi + 0x48], ecx
mov dword fs:[0], eax
mov edi, dword [esi + 0x30]
mov eax, dword [0x10285a04]
mov ecx, dword [0x10285a08]
xor edx, edx
div ecx
mov edx, dword [esi + 0x34]
xor eax, 0x768fcafa
imul eax, eax, 0xca3ef22c
add eax, 0x240950a0
mov dword [esi + 0x28], eax
push eax
push eax
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x18], eax
mov esp, eax
push eax
mov ebx, esp
mov dword [esi + 0x14], ebx
push eax
mov eax, esp
push eax
mov ecx, esp
mov dword [esi + 0x1c], ecx
sub esp, 8
mov ecx, esp
mov dword [esi + 0x24], ecx
mov ecx, dword [esi + 0x18]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x38]
mov dword [ecx], edx
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x3c]
mov dword [ebx], ecx
mov ecx, dword [esi + 0x24]
mov dword [eax], edi
mov eax, dword [eax]
mov dword [esi + 0x20], eax
mov dword [edx], 0
sub esp, 4
mov dword [esp], eax
call fcn.1004ca70
mov ecx, dword [esi + 0x24]
call fcn.100499a0
mov cl, al
mov eax, dword [esi + 0x28]
mov byte [esi + 0x2f], cl
cmp eax, 0x51d7c8f8
jb 0x100686eb
mov al, byte [esi + 0x2f]
test al, 1
jne 0x10068869
jmp 0x1006878f
mov eax, dword [0x10285a0c]
xor edx, edx
div dword [0x10285a10]
imul eax, eax, 0x592e9f7b
add eax, 0xe234d42f
add eax, 0xc8dbf052
add eax, 1
cmp eax, 0xf8c08ac9
ja 0x10068b3f
mov eax, dword [0x10285a14]
mov ecx, dword [0x10285a18]
mov edx, eax
xor edx, 0xffffffff
mov dword [esi + 0x10], edx
mov edi, ecx
xor edi, 0xffffffff
and edx, 0xf2665a2e
and eax, 0xd99a5d1
mov ebx, edi
and ebx, 0xf2665a2e
and ecx, 0xd99a5d1
or edx, eax
mov eax, dword [esi + 0x10]
or ebx, ecx
mov ecx, dword [esi + 0x1c]
xor edx, ebx
or eax, edi
xor eax, 0xffffffff
or edx, eax
add edx, 0x7d763422
mov eax, edx
or eax, 0x4c75d68e
xor eax, 0xffffffff
xor edx, 0xffffffff
and edx, 0xb38a2971
or eax, edx
xor eax, 0xffffffff
sub eax, 0x24a0eb9d
add eax, 0x6de39f14
add eax, 0x24a0eb9d
mov ebx, dword [ecx]
mov edi, ebx
xor edi, 0xffffffff
mov edx, edi
and edx, 0x8d1ef86d
and ebx, 0x72e10792
or edx, ebx
xor edx, 0x8d1ef869
or edi, 0xfffffffb
xor edi, 0xffffffff
or edx, edi
mov dword [ecx], edx
cmp eax, 0x24520fde
jbe 0x10068b3f
mov dword [esi + 0x50], 0
jmp 0x10068af9
mov eax, dword [esi + 0x18]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub ecx, 1
sbb eax, 0
jl 0x10068a77
jmp 0x10068882
mov ecx, dword [esi + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
add ecx, eax
call fcn.10049b90
mov edx, dword [esi + 0x18]
mov ecx, eax
mov eax, dword [esi + 0x14]
mov edi, dword [edx]
mov ebx, dword [edx + 4]
mov edx, dword [eax]
mov dword [esi + 0x50], 1
sub esp, 0xc
mov eax, esp
mov dword [eax + 8], ebx
mov dword [eax + 4], edi
mov dword [eax], edx
call fcn.10083080
mov dword [esi + 8], edx
mov dword [esi + 0xc], eax
jmp 0x10068917
jmp 0x10068a77
mov eax, dword [0x10285a3c]
imul eax, dword [0x10285a40]
add eax, 0x271c8216
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x9da075da
and eax, 0x625f8a25
or ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x94ed5be0
and ecx, 0x6b12a41f
or eax, ecx
cmp eax, 0xf26e84
jb 0x10068b60
mov ebx, dword [esi + 0x18]
mov eax, dword [0x10285a44]
mov ecx, dword [0x10285a48]
xor edx, edx
div ecx
mov edi, eax
not edi
mov ecx, eax
or ecx, 0xec72d7b0
mov edx, ecx
and edx, 0xd1db47b0
and edi, 0x204284f
imul edi, edx
mov edx, dword [esi + 8]
and ecx, 0x2e24b84f
or eax, 0xee76ffff
imul eax, ecx
mov ecx, dword [esi + 0xc]
add eax, edi
mov edi, eax
xor edi, 0x489a78b1
and eax, 0x3765874e
add eax, eax
sub eax, edi
mov edi, dword [ebx]
mov ebx, dword [ebx + 4]
xor edx, ebx
xor ecx, edi
or ecx, edx
setne cl
mov byte [esi + 7], cl
cmp eax, 0x4cd45b35
jbe 0x10068b60
mov al, byte [esi + 7]
test al, 1
jne 0x100689d9
jmp 0x10068a3b
mov ecx, dword [esi + 0x1c]
mov eax, dword [0x10285a54]
mov edx, dword [0x10285a58]
add eax, 0x25985990
add eax, edx
sub eax, 0x25985990
mov edx, eax
and edx, 0x5101dddb
shl edx, 1
xor eax, 0x5101dddb
add eax, edx
or eax, 0x9b0f9a76
mov edx, eax
xor edx, 0xf631b2ce
xor edx, 0xffffffff
and edx, 0xf631b2ce
shl edx, 1
sub edx, 0xf631b2ce
sub eax, edx
mov edx, dword [ecx]
or edx, 4
mov dword [ecx], edx
cmp eax, 0x1b27eece
jbe 0x10068b65
jmp 0x10068a3b
mov eax, dword [0x10285a5c]
mov edx, dword [0x10285a60]
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
or eax, edx
and eax, ecx
add eax, 0xa544c1d1
imul eax, eax, 0xfb532a8b
xor eax, 0xffffffff
or eax, 0x3cd1a0c
xor eax, 0xffffffff
cmp eax, 0xa0551f42
jb 0x10068b94
jmp 0x10068912
mov eax, dword [0x10285a6c]
sub eax, dword [0x10285a70]
mov ecx, 0xa5a40d9d
xor edx, edx
div ecx
xor eax, 0xffffffff
or eax, 0xb485fb9f
xor eax, 0xffffffff
sub eax, 0x99ea8866
cmp eax, 0x300fb662
jb 0x10068b99
mov eax, dword [0x10285a74]
add eax, dword [0x10285a78]
mov ecx, 0xfdf1dbef
xor edx, edx
div ecx
add eax, 0x368cebb0
mov edx, eax
and edx, 0x2eb862fc
mov ecx, eax
or ecx, 0x2eb862fc
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xd1479d03
or eax, 0xd1479d03
imul eax, edx
add eax, ecx
cmp eax, 0x7c4bea59
je 0x10068aa6
mov dword [esi + 0x50], 0
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x20]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
add ecx, edx
mov edx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax], edx
mov dword [eax + 4], 0
call fcn.10037550
jmp 0x10068b20
mov ecx, dword [esi + 0x24]
call fcn.1004cee0
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x48]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax]
mov edx, ecx
and edx, 4
xor edx, 0xffffffff
add ecx, 4
add ecx, 1
add ecx, edx
mov dword [eax], ecx
jmp 0x100687ba
jmp 0x10068957
mov eax, dword [esi + 0x1c]
mov edi, dword [eax]
mov edx, edi
xor edx, 0xffffffff
mov ecx, edx
and ecx, 0xf37c4a07
and edi, 0xc83b5f8
or ecx, edi
xor ecx, 0xf37c4a03
or edx, 0xfffffffb
xor edx, 0xffffffff
or ecx, edx
mov dword [eax], ecx
jmp 0x100689d9
jmp 0x10068a72
jmp 0x10068aa6