Function at 0x10096650
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x48
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [0x10290680]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [0x1028a05c]
or ecx, dword [0x1028a060]
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0xffffffff
xor ecx, 0xefa36d7c
mov edx, 0xffffffff
xor edx, 0xefa36d7c
and ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
xor eax, 0xd9c2c590
or eax, 0x37b664b0
cmp eax, 0xe5bae2c8
ja 0x10096a29
mov ebx, dword [ebp - 0x14]
mov eax, dword [0x1028a064]
mov ecx, dword [0x1028a068]
xor edx, edx
div ecx
mov edx, dword [ebp - 0x18]
mov ecx, eax
not ecx
or ecx, 0xd116bc4a
and eax, 0x28c10311
xor ecx, 0xc72c54e6
or eax, ecx
add eax, 0x6ad458ee
mov dword [ebp - 0x20], eax
push eax
mov edi, esp
mov dword [ebp - 0x24], edi
push eax
mov ecx, esp
push eax
mov eax, esp
mov dword [ebp - 0x2c], eax
push eax
mov esi, esp
mov dword [ebp - 0x4c], esi
push eax
mov eax, esp
mov dword [ebp - 0x48], eax
push eax
mov eax, esp
mov dword [ebp - 0x44], 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 eax, esp
mov dword [ebp - 0x34], eax
push eax
mov eax, esp
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
mov dword [edi], ebx
mov dword [ecx], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x28], ecx
mov dword [eax], ecx
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [esi], eax
call fcn.100306e0
mov edx, dword [ebp - 0x24]
mov ecx, eax
mov eax, dword [ebp - 0x20]
mov edi, dword [esi]
xor esi, esi
sub esi, edi
add ecx, esi
cmp ecx, dword [edx]
setb cl
mov byte [ebp - 0x19], cl
cmp eax, 0xdea90d6f
je 0x100966b7
mov al, byte [ebp - 0x19]
test al, 1
jne 0x10096777
jmp 0x10096831
mov eax, dword [0x1028a06c]
xor edx, edx
div dword [0x1028a070]
mov ecx, eax
xor ecx, 0x7f9130d6
xor ecx, 0xffffffff
and ecx, 0x7f9130d6
shl ecx, 1
sub ecx, 0x7f9130d6
sub eax, ecx
mov ecx, 0x3a3c0a9f
xor edx, edx
div ecx
mov ecx, 0x5031f971
xor edx, edx
div ecx
cmp eax, 0x56b280bc
jae 0x10096a54
mov ecx, dword [0x1028a074]
mov esi, dword [0x1028a078]
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
and eax, esi
xor eax, 0xffffffff
mov edx, esi
xor edx, 0xffffffff
xor esi, 0xffffffff
or edx, esi
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0x9cf43ec3
xor edx, edx
div ecx
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, 0xe7566205
add eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x73c4e910
add eax, ecx
add eax, 1
mov dword [ebp - 0x50], eax
call fcn.100309a0
mov eax, dword [ebp - 0x50]
cmp eax, 0x93c8408c
je 0x10096a54
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x4c]
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.1003d3c0
mov ecx, dword [ebp - 0x28]
mov edx, eax
mov eax, dword [ebp - 0x40]
mov dword [eax], edx
call fcn.1002ec60
mov ecx, dword [ebp - 0x3c]
mov edx, eax
mov eax, dword [ebp - 0x40]
mov dword [ecx], edx
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100313a0
mov ecx, dword [ebp - 0x38]
add esp, 8
mov edx, eax
mov eax, dword [ebp - 0x2c]
mov dword [ecx], edx
mov ecx, dword [eax]
call fcn.1002e980
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x38]
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.10029db0
mov ecx, dword [ebp - 0x34]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x44]
mov dword [ecx], edx
cmp dword [eax], 0xf
jbe 0x10096948
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x4c]
mov edx, dword [edx]
mov edx, dword [edx]
mov dword [eax], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x54], ecx
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.10029db0
mov ecx, dword [ebp - 0x34]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x54]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.10096d50
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x3c]
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.1002edc0
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x2c]
add esp, 0xc
mov ecx, dword [ecx]
mov eax, dword [eax]
mov dword [eax], ecx
jmp 0x10096980
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
mov edx, dword [edx]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.10096d50
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100315e0
add esp, 8
mov eax, dword [0x1028a07c]
xor edx, edx
div dword [0x1028a080]
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xb6add9b4
mov edx, 0xffffffff
xor edx, 0xb6add9b4
and ecx, edx
or eax, ecx
add eax, 0xb62b4a15
sub eax, 0x6e7a0927
sub eax, 0xb62b4a15
or eax, eax
xor eax, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x70ccc517
mov edx, 0xffffffff
xor edx, 0x70ccc517
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
cmp eax, 0x1cba6f8a
je 0x10096a5e
mov eax, dword [0x1028a084]
or eax, dword [0x1028a088]
sub eax, 0xdf5b2de3
xor ecx, ecx
sub ecx, 0x733b077f
add eax, ecx
mov ecx, 0x35e03223
xor edx, edx
div ecx
cmp eax, 0x25385b02
jae 0x100969e4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100b5a82
mov eax, dword [ebp - 0x28]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
push eax
mov edi, esp
push eax
mov ecx, esp
push eax
mov edx, esp
push eax
mov eax, esp
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.100306e0
jmp 0x100966b7
call fcn.100309a0
jmp 0x100967bc
jmp 0x100969e4