Function at 0x10088610
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x7c
mov dword [ebp - 0x20], ecx
mov al, byte [ebp + 0x18]
mov byte [ebp - 0x19], al
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [0x1028458c]
mov ecx, dword [0x10284590]
sub eax, 0x4fb51b7e
add eax, ecx
add eax, 0x4fb51b7e
and eax, eax
xor eax, 0xffffffff
mov ecx, 0x14bb7519
and ecx, 0x14bb7519
xor ecx, 0xffffffff
and eax, ecx
xor eax, 0xffffffff
and eax, 0x28188a74
mov ecx, 0x132fb6c5
xor edx, edx
div ecx
cmp eax, 0x8c7c22ca
je 0x10088b4f
mov ebx, dword [ebp - 0x10]
mov eax, dword [0x10284594]
mov ecx, dword [0x10284598]
sub eax, ecx
add eax, 0x51419ded
shr eax, 1
mov ecx, 0xa73e8c59
mul ecx
mov eax, edx
mov dl, byte [ebp - 0x19]
shr eax, 0x1c
imul eax, eax, 0xb00a6aa0
mov dword [ebp - 0x28], eax
push eax
mov eax, esp
mov dword [ebp - 0x40], eax
push eax
mov eax, esp
mov dword [ebp - 0x3c], eax
push eax
mov eax, esp
mov dword [ebp - 0x38], eax
push eax
mov edi, esp
mov dword [ebp - 0x2c], edi
push eax
mov ecx, esp
push eax
mov eax, esp
mov dword [ebp - 0x34], eax
push eax
mov esi, esp
mov dword [ebp - 0x60], esi
push eax
mov eax, esp
mov dword [ebp - 0x5c], eax
push eax
mov eax, esp
mov dword [ebp - 0x58], eax
push eax
mov eax, esp
mov dword [ebp - 0x54], eax
push eax
mov eax, esp
mov dword [ebp - 0x50], eax
push eax
mov eax, esp
mov dword [ebp - 0x4c], eax
push eax
mov eax, esp
mov dword [ebp - 0x48], eax
push eax
mov eax, esp
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x40]
mov byte [eax], dl
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
mov dword [eax], edx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
mov dword [eax], edx
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov dword [edi], ebx
mov dword [ecx], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x30], ecx
mov dword [eax], ecx
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [esi], eax
call fcn.1002ff50
mov edx, dword [ebp - 0x2c]
mov ecx, eax
mov eax, dword [ebp - 0x28]
mov edi, dword [esi]
mov esi, ecx
xor esi, 0xffffffff
and esi, edi
xor edi, 0xffffffff
and ecx, edi
sub ecx, esi
cmp ecx, dword [edx]
setb cl
mov byte [ebp - 0x21], cl
cmp eax, 0xfbfea353
je 0x10088b4f
mov al, byte [ebp - 0x21]
test al, 1
jne 0x10088769
jmp 0x1008876e
call fcn.10030180
mov eax, dword [0x1028459c]
xor eax, dword [0x102845a0]
imul eax, eax, 0x7f870dcc
and eax, 0x52d1a984
sub eax, 0x4c5fe23b
sub eax, 0x571d7669
add eax, 0x4c5fe23b
cmp eax, 0x476b3445
jb 0x10088b9e
mov esi, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x60]
mov eax, dword [0x102845a4]
mov edx, dword [0x102845a8]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
xor eax, 0xe46d77af
sub eax, 0x3d5ff6a7
mov ecx, eax
xor ecx, 0xa3d29a7f
mov edx, 0xffffffff
xor edx, 0xa3d29a7f
and eax, edx
mov edx, dword [ebp - 0x34]
shl eax, 1
sub eax, ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x58]
mov edi, dword [edi]
add edi, dword [ebx]
mov dword [esi], edi
mov edx, dword [edx]
mov edx, dword [edx + 0x14]
mov dword [eax], edx
mov eax, dword [esi]
sub esp, 4
mov dword [esp], eax
call fcn.1003cf80
mov ecx, dword [ebp - 0x30]
mov edx, eax
mov eax, dword [ebp - 0x54]
mov dword [eax], edx
call fcn.1002e830
mov ecx, dword [ebp - 0x50]
mov edx, eax
mov eax, dword [ebp - 0x54]
mov dword [ecx], edx
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10030b90
mov ecx, dword [ebp - 0x4c]
add esp, 8
mov edx, eax
mov eax, dword [ebp - 0x34]
mov dword [ecx], edx
mov ecx, dword [eax]
call fcn.1001bc80
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x4c]
mov edi, dword [esi]
mov esi, dword [ecx]
mov dword [esi + 0x10], edi
mov edx, dword [edx]
mov ecx, dword [ecx]
mov dword [ecx + 0x14], edx
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.10029270
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x58]
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x68]
mov dword [edx], esi
cmp dword [ecx], 0xf
seta cl
mov byte [ebp - 0x61], cl
cmp eax, 0x2b015
jb 0x10088b9e
mov al, byte [ebp - 0x61]
test al, 1
jne 0x1008889f
jmp 0x100889bf
mov eax, dword [0x102845ac]
and eax, dword [0x102845b0]
add eax, 0x82608227
sub eax, 0xa92a9b17
sub eax, 0x5218cae1
cmp eax, 0x28ed6854
je 0x10088c45
mov ebx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x40]
mov ecx, dword [0x102845b4]
mov edx, dword [0x102845b8]
mov eax, ecx
xor eax, 0xffffffff
mov esi, edx
xor esi, 0xffffffff
or eax, esi
mov esi, dword [ebp - 0x3c]
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
imul ecx, eax, 0xb2fad604
and ecx, 0x98182dcb
mov eax, ecx
and eax, 0x4ce4e166
xor eax, 0xffffffff
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x4ce4e166
or ecx, edx
mov edx, dword [ebp - 0x38]
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x44]
mov ebx, dword [ebx]
mov ebx, dword [ebx]
mov dword [eax], ebx
mov bl, byte [edi]
mov byte [ebp - 0x6d], bl
mov esi, dword [esi]
mov dword [ebp - 0x74], esi
mov esi, dword [edx]
mov edi, dword [ecx]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.10029270
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x74]
add esp, 4
mov ebx, eax
mov al, byte [ebp - 0x6d]
mov ecx, dword [ecx]
sub esp, 0x14
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
movsx eax, al
mov dword [esp + 0x10], eax
call fcn.10088d50
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x50]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov edx, dword [edx]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.1002e960
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x6c]
add esp, 0xc
mov edx, dword [edx]
mov ecx, dword [ecx]
mov dword [ecx], edx
cmp eax, 0xd9d9fc80
jae 0x10088c45
jmp 0x10088ac0
mov ecx, dword [0x102845bc]
mov edx, dword [0x102845c0]
xor eax, eax
sub eax, ecx
xor ecx, ecx
sub ecx, edx
add eax, ecx
xor ecx, ecx
sub ecx, eax
sub ecx, 0x9c3c4b56
mov eax, ecx
and eax, eax
xor eax, 0xffffffff
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xc2a53bd2
or eax, edx
mov edx, 0xc2a53bd2
and edx, 0xc2a53bd2
xor edx, 0xffffffff
and ecx, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
and eax, 0xa74cc593
cmp eax, 0x82b20713
je 0x10088ce8
mov ebx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x60]
mov esi, dword [ebp - 0x38]
mov eax, dword [0x102845c4]
mov edx, dword [0x102845c8]
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
or eax, edx
and eax, ecx
add eax, 0x23129bb3
sub eax, 0x73ebb782
sub eax, 0x23129bb3
add eax, 0xbcd2c443
mov ecx, 0x88a9713b
xor edx, edx
div ecx
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
mov edx, dword [edx]
mov esi, dword [esi]
mov edi, dword [edi]
mov ebx, dword [ebx]
mov ecx, dword [ecx]
sub esp, 0x14
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
movsx eax, al
mov dword [esp + 0x10], eax
call fcn.10088d50
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10030d90
mov eax, dword [ebp - 0x78]
add esp, 8
cmp eax, 0xe5a7ba
je 0x10088a21
jmp 0x10088ac0
mov edx, dword [0x102845cc]
mov eax, dword [0x102845d0]
mov ecx, edx
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, eax
xor eax, 0xffffffff
xor ecx, 0xffffffff
xor eax, 0xffffffff
or ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xf6d54e90
mov edx, 0xffffffff
xor edx, 0xf6d54e90
and ecx, edx
sub ecx, eax
mov edx, 0xffffffff
xor edx, 0xa5f5fa40
mov eax, ecx
xor eax, edx
and eax, ecx
sub eax, 0xfa6fdeb4
cmp eax, 0xc3a96041
ja 0x10088d43
mov eax, dword [0x102845d4]
imul eax, dword [0x102845d8]
or eax, 0xbd38de8d
xor eax, 0xf3ba7900
xor eax, 0xff774d88
cmp eax, 0xf2889771
je 0x10088b1c
mov eax, dword [ebp - 0x30]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x14
push eax
mov eax, esp
push eax
mov ebx, esp
push eax
mov esi, esp
push eax
mov edi, esp
push eax
mov ecx, esp
mov dword [ebp - 0x80], ecx
push eax
mov edx, esp
push eax
mov ecx, esp
mov dword [ebp - 0x7c], ecx
mov cl, byte [ebp - 0x19]
mov byte [eax], cl
mov ecx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x18]
mov dword [ebx], eax
mov eax, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x14]
mov dword [esi], ebx
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x20]
mov dword [edi], ebx
mov dword [ecx], esi
mov ecx, dword [ecx]
mov dword [edx], ecx
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
mov dword [eax], edx
call fcn.1002ff50
jmp 0x1008867c
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x60]
mov edi, dword [edi]
mov eax, dword [eax]
mov ebx, edi
and ebx, eax
shl ebx, 1
xor edi, eax
mov eax, dword [ebp - 0x58]
add edi, ebx
mov dword [esi], edi
mov edx, dword [edx]
mov edx, dword [edx + 0x14]
mov dword [eax], edx
mov eax, dword [esi]
sub esp, 4
mov dword [esp], eax
call fcn.1003cf80
mov ecx, dword [ebp - 0x30]
mov edx, eax
mov eax, dword [ebp - 0x54]
mov dword [eax], edx
call fcn.1002e830
mov ecx, dword [ebp - 0x50]
mov edx, eax
mov eax, dword [ebp - 0x54]
mov dword [ecx], edx
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10030b90
mov ecx, dword [ebp - 0x4c]
add esp, 8
mov edx, eax
mov eax, dword [ebp - 0x34]
mov dword [ecx], edx
mov ecx, dword [eax]
call fcn.1001bc80
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x4c]
mov edi, dword [esi]
mov esi, dword [ecx]
mov dword [esi + 0x10], edi
mov edx, dword [edx]
mov ecx, dword [ecx]
mov dword [ecx + 0x14], edx
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.10029270
add esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x48]
mov dword [eax], ecx
jmp 0x1008879e
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x40]
mov ebx, dword [ebx]
mov ebx, dword [ebx]
mov dword [eax], ebx
mov bl, byte [edi]
mov byte [ebp - 0x81], bl
mov esi, dword [esi]
mov dword [ebp - 0x88], esi
mov esi, dword [edx]
mov edi, dword [ecx]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.10029270
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x88]
add esp, 4
mov ebx, eax
mov al, byte [ebp - 0x81]
mov ecx, dword [ecx]
sub esp, 0x14
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
movsx eax, al
mov dword [esp + 0x10], eax
call fcn.10088d50
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x50]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov edx, dword [edx]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.1002e960
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x34]
add esp, 0xc
mov ecx, dword [ecx]
mov eax, dword [eax]
mov dword [eax], ecx
jmp 0x100888c4
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x48]
mov edi, dword [ebp - 0x60]
mov esi, dword [ebp - 0x38]
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
mov edx, dword [edx]
mov esi, dword [esi]
mov edi, dword [edi]
mov ebx, dword [ebx]
mov ecx, dword [ecx]
sub esp, 0x14
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
movsx eax, al
mov dword [esp + 0x10], eax
call fcn.10088d50
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10030d90
add esp, 8
jmp 0x10088a21
jmp 0x10088b1c