Function at 0x100b791a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x38
mov esi, dword [ebp + 8]
mov edi, ecx
mov ecx, esi
call fcn.100b6460
mov ecx, dword [edi + 0x12f0]
add edi, 0x12f0
mov eax, dword [ecx + 0x16344]
test eax, eax
je 0x100b7959
mov ecx, eax
call fcn.10120384
mov ecx, dword [edi]
lea edx, [ecx + 0x16344]
jmp 0x100b7961
lea edx, [ecx + 0x16344]
xor eax, eax
mov dword [esi], eax
mov eax, dword [ecx + 0x16344]
test eax, eax
je 0x100b797e
mov ecx, eax
call fcn.1010309c
mov ecx, dword [edi]
lea edx, [ecx + 0x16344]
jmp 0x100b7980
xor eax, eax
mov bl, byte [esi + 4]
and bl, 0xfe
or bl, al
mov byte [esi + 4], bl
mov eax, dword [edx]
test eax, eax
je 0x100b799f
mov ecx, eax
call fcn.101030a4
mov bl, byte [esi + 4]
mov ecx, dword [edi]
jmp 0x100b79a1
xor eax, eax
add al, al
and bl, 0xfd
or bl, al
mov byte [esi + 4], bl
call fcn.100b36fa
test al, al
je 0x100b79ee
mov ecx, dword [edi]
mov edx, dword [esi + 8]
mov eax, dword [ecx + 0x44]
and edx, 0xffffffc7
and eax, 7
lea eax, [edx + eax*8]
mov dword [esi + 8], eax
call fcn.100b4226
mov ecx, dword [0x1020d940]
xor edx, edx
and ecx, 1
shl ecx, 7
cmp eax, 1
mov eax, 0xffffff7f
cmovg edx, ecx
and eax, dword [esi + 0x3c]
or eax, edx
mov dword [esi + 0x3c], eax
mov ecx, dword [edi]
call fcn.100b36c2
mov cl, byte [esi + 0xc]
and cl, 0xfe
or cl, al
mov byte [esi + 0xc], cl
mov ecx, dword [edi]
call fcn.100b372e
test al, al
mov dword [esp + 0xc], edi
je 0x100b7aee
or byte [esi + 0xc], 4
mov ecx, dword [edi]
mov eax, dword [esi + 0x10]
mov edi, dword [ecx + 8]
and eax, 0xfffffff8
and edi, 7
or eax, edi
mov dword [esi + 0x10], eax
and eax, 0xffffffc7
mov edx, dword [ecx + 0x14]
and edx, 7
lea eax, [eax + edx*8]
mov dword [esp + 0x10], edx
mov dword [esi + 0x10], eax
and eax, 0xfffffe3f
mov ebx, dword [ecx + 0x18]
and ebx, 7
mov esi, ebx
shl esi, 6
or eax, esi
mov esi, dword [ebp + 8]
mov dword [esi + 0x10], eax
and eax, 0xfffff1ff
mov esi, dword [ecx + 0x1c]
and esi, 7
mov dword [esp + 0x14], esi
shl esi, 9
or eax, esi
mov esi, dword [ebp + 8]
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 8]
mov esi, 0xff
cmp dword [ecx + 0x10], esi
mov al, byte [eax + 0x14]
sete dl
mov byte [esp + 7], dl
and al, 0xfe
or al, dl
mov edx, edi
mov edi, dword [ebp + 8]
mov byte [edi + 0x14], al
cmp dword [ecx + 0x20], esi
mov esi, dword [ebp + 8]
sete ah
and al, 0xfd
add ah, ah
or al, ah
mov byte [esp + 8], ah
mov byte [esi + 0x14], al
cmp dword [ecx + 0x20], 0
sete ah
and al, 0xfb
shl ah, 2
or al, ah
mov byte [esp + 6], ah
mov byte [esi + 0x14], al
and al, 0xf7
mov ah, byte [ecx + 0x24]
shl ah, 3
or al, ah
mov byte [esi + 0x14], al
cmp byte [ecx + 0x24], 0
je 0x100b7ad1
mov edx, dword [ecx + 0x28]
mov eax, dword [esi + 0x18]
and edx, 7
and eax, 0xfffffff8
or eax, edx
mov dword [esi + 0x18], eax
cmp byte [ecx + 0x24], 0
je 0x100b7af5
mov edx, dword [ecx + 0x34]
mov edi, dword [esp + 0xc]
jmp 0x100b7afd
mov ecx, dword [edi]
jmp 0x100b7b9b
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
and edx, 7
and eax, 0xffffffc7
lea eax, [eax + edx*8]
mov dword [esi + 0x18], eax
cmp byte [ecx + 0x24], 0
je 0x100b7b12
mov ebx, dword [ecx + 0x38]
and ebx, 7
and eax, 0xfffffe3f
shl ebx, 6
or eax, ebx
mov dword [esi + 0x18], eax
cmp byte [ecx + 0x24], 0
je 0x100b7b31
mov edx, dword [ecx + 0x3c]
mov bl, byte [esp + 7]
jmp 0x100b7b39
mov bl, byte [esp + 7]
mov edx, dword [esp + 0x14]
and edx, 7
and eax, 0xfffff1ff
mov bh, byte [esp + 6]
shl edx, 9
or eax, edx
mov dword [esi + 0x18], eax
cmp byte [ecx + 0x24], 0
je 0x100b7b5d
cmp dword [ecx + 0x30], 0xff
sete bl
mov al, byte [esi + 0x1c]
mov dl, byte [esp + 8]
and al, 0xfe
or al, bl
mov byte [esi + 0x1c], al
cmp byte [ecx + 0x24], 0
je 0x100b7b7d
cmp dword [ecx + 0x40], 0xff
sete dl
add dl, dl
and al, 0xfd
or al, dl
mov byte [esi + 0x1c], al
cmp byte [ecx + 0x24], 0
je 0x100b7b94
cmp dword [ecx + 0x40], 0
sete bh
shl bh, 2
and al, 0xfb
or al, bh
mov byte [esi + 0x1c], al
call fcn.100b36e2
test al, al
je 0x100b7bde
or byte [esi + 0x1c], 8
mov eax, dword [edi]
mov edx, dword [esi + 8]
mov ecx, dword [eax + 0x163e4]
and edx, 0xfffffff8
and ecx, 7
or edx, ecx
mov dword [esi + 8], edx
mov eax, dword [eax + 0x16320]
movzx eax, byte [eax + 0x64]
push eax
call fcn.100ce9ea
add esp, 4
mov cl, byte [esi + 0xc]
add al, al
and cl, 0xfd
or cl, al
mov byte [esi + 0xc], cl
mov ecx, dword [edi]
mov dl, byte [esi + 0x24]
mov al, byte [ecx + 0x163d1]
and dl, 0xfd
add al, al
or dl, al
mov byte [esi + 0x24], dl
call fcn.100b35a6
mov cl, byte [esi + 0x1c]
shl al, 4
and cl, 0xef
or cl, al
mov byte [esi + 0x1c], cl
mov ecx, dword [edi]
call fcn.100b36aa
mov ecx, dword [esi + 0x20]
and eax, 3
and ecx, 0xfffffffc
or ecx, eax
mov dword [esi + 0x20], ecx
mov ecx, dword [edi]
cmp byte [ecx + 0x1633c], 0
je 0x100b7c37
call fcn.100b36aa
mov ecx, dword [edi]
test eax, eax
setne al
shl al, 2
jmp 0x100b7c39
xor eax, eax
mov dl, byte [esi + 0x24]
and dl, 0xfb
or dl, al
mov byte [esi + 0x24], dl
call fcn.100b3e74
mov dl, byte [esi + 0x24]
shl al, 3
xorps xmm0, xmm0
and dl, 0xf7
or dl, al
mov al, 0x10
mov byte [esi + 0x24], dl
mov ecx, dword [edi]
movss xmm1, dword [ecx + 0x5c]
ucomiss xmm1, xmm0
jne 0x100b7c79
jp 0x100b7c79
ucomiss xmm0, dword [ecx + 0x60]
setp ah
setne al
or al, ah
shl al, 4
and dl, 0xef
or dl, al
mov byte [esi + 0x24], dl
call fcn.100b3a86
test al, al
je 0x100b7d29
or byte [esi + 0x24], 0x20
mov ecx, dword [edi]
call fcn.100b3b90
mov ecx, dword [esi + 0x28]
and eax, 0xf
and ecx, 0xfffffff0
or ecx, eax
mov dword [esi + 0x28], ecx
mov ecx, dword [edi]
call fcn.100b3cca
mov ecx, 0xffffff0f
and eax, 0xf
and ecx, dword [esi + 0x28]
shl eax, 4
or ecx, eax
mov dword [esi + 0x28], ecx
mov ecx, dword [edi]
call fcn.100b3b06
mov ecx, 0xfffff8ff
and eax, 7
and ecx, dword [esi + 0x28]
shl eax, 8
or ecx, eax
mov dword [esi + 0x28], ecx
mov ecx, dword [edi]
call fcn.100b3c66
mov ecx, 0xffff87ff
and eax, 0xf
and ecx, dword [esi + 0x28]
shl eax, 0xb
or ecx, eax
mov dword [esi + 0x28], ecx
mov ecx, dword [edi]
call fcn.100b3cf4
mov ecx, 0xfff87fff
and eax, 0xf
and ecx, dword [esi + 0x28]
shl eax, 0xf
or ecx, eax
mov dword [esi + 0x28], ecx
mov ecx, dword [edi]
call fcn.100b3bb8
mov ecx, 0xffc7ffff
and eax, 7
and ecx, dword [esi + 0x28]
shl eax, 0x13
or ecx, eax
mov dword [esi + 0x28], ecx
mov ecx, dword [edi]
call fcn.100b3cb4
mov ecx, dword [esi + 0x44]
and eax, 0xf
xor ebx, ebx
and ecx, 0xfffffff0
or ecx, eax
mov dword [esi + 0x44], ecx
xor esi, esi
mov ecx, dword [edi]
push ebx
call fcn.100b42ba
mov ecx, esi
mov dword [esp + 8], esi
shl eax, cl
mov ecx, dword [ebp + 8]
or dword [ecx + 0x2c], eax
mov esi, ecx
mov ecx, dword [edi]
push ebx
call fcn.100b4266
mov byte [esi + ebx + 0x30], al
mov esi, dword [esp + 8]
inc ebx
mov ecx, dword [edi]
add esi, 4
cmp ebx, 8
jne 0x100b7d44
mov esi, dword [ebp + 8]
cmp byte [ecx + 0x16430], 0
je 0x100b7d9c
mov eax, dword [ecx + 0x162e0]
test eax, eax
je 0x100b7d9c
movzx eax, byte [eax + 0x30]
push eax
call fcn.100ceab0
add esp, 4
mov ecx, dword [edi]
jmp 0x100b7d9e
xor eax, eax
mov dl, byte [esi + 0x38]
and dl, 0xfe
or dl, al
mov byte [esi + 0x38], dl
call fcn.100b4226
mov edx, dword [esi + 0x3c]
and eax, 7
and edx, 0xfffffff8
or edx, eax
mov dword [esi + 0x3c], edx
and edx, 0xffffff87
mov ecx, dword [edi]
mov esi, dword [ecx + 0x16438]
and esi, 0xf
cmp eax, 2
lea edx, [edx + esi*8]
mov esi, dword [ebp + 8]
mov dword [esi + 0x3c], edx
jb 0x100b7df6
mov eax, dword [ecx + 0x16344]
test eax, eax
je 0x100b7df6
mov ecx, eax
call fcn.101030ac
mov cl, byte [esi + 0x40]
and cl, 0xfe
or cl, al
mov byte [esi + 0x40], cl
mov ecx, dword [edi]
cmp dword [ecx + 0x16344], 0
jne 0x100b7e56
lea esi, [esi + 0x208]
mov ebx, 0x70
add ecx, ebx
lea eax, [esp + 0x18]
push eax
call fcn.100cf87a
movsd xmm0, qword [esp + 0x18]
add ebx, 0xe0
movsd qword [esi], xmm0
add esi, 8
cmp ebx, 0x770
mov ecx, dword [edi]
jne 0x100b7e0a
call fcn.100b4024
test al, al
je 0x100b7e46
mov eax, dword [edi]
mov al, byte [eax + 0x16355]
jmp 0x100b7e48
xor eax, eax
mov edx, dword [ebp + 8]
mov cl, byte [edx + 0x24]
and cl, 0xfe
or cl, al
mov byte [edx + 0x24], cl
xor esi, esi
mov edx, 0x770
mov ebx, 0x48
mov ecx, dword [edi]
mov dword [esp + 8], edx
mov eax, dword [ecx + 0x16344]
test eax, eax
je 0x100b7ec2
mov ecx, eax
push esi
call fcn.10120372
test al, al
je 0x100b7f0f
mov ecx, dword [edi]
lea eax, [esp + 0x18]
add ecx, dword [esp + 8]
push eax
call fcn.100c0040
mov eax, dword [esp + 0x30]
mov ecx, dword [ebp + 8]
movsd xmm0, qword [esp + 0x28]
movsd xmm2, qword [esp + 0x18]
movsd xmm1, qword [esp + 0x20]
mov dword [ecx + ebx + 0x18], eax
movsd qword [ecx + ebx + 0x10], xmm0
movsd qword [ecx + ebx + 8], xmm1
movsd qword [ecx + ebx], xmm2
jmp 0x100b7f0f
cmp esi, 7
ja 0x100b7f2f
mov edi, dword [ebp + 8]
test byte [edi + esi*8 + 0x208], 0x1f
je 0x100b7f2b
lea eax, [esp + 0x18]
add ecx, edx
push eax
call fcn.100c0040
mov eax, dword [esp + 0x30]
movsd xmm0, qword [esp + 0x28]
movsd xmm2, qword [esp + 0x18]
movsd xmm1, qword [esp + 0x20]
mov dword [edi + ebx + 0x18], eax
movsd qword [edi + ebx + 0x10], xmm0
movsd qword [edi + ebx + 8], xmm1
movsd qword [edi + ebx], xmm2
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 8]
inc esi
add ebx, 0x1c
add eax, 0xac0
cmp esi, 0x10
mov edx, eax
jb 0x100b7e62
mov ecx, dword [edi]
jmp 0x100b7f2f
mov edi, dword [esp + 0xc]
push 1
call fcn.100b3334
mov ecx, dword [edi]
mov ebx, eax
call fcn.100b383c
mov ecx, dword [edi]
mov bh, al
cmp dword [ecx + 0x50], 0
sete al
or al, bl
mov byte [esp + 8], al
call fcn.100b3628
movzx eax, ax
mov byte [esp + 7], bl
cmp eax, 0x300
jae 0x100b80ce
xor bl, 1
xor esi, esi
or bh, bl
mov byte [esp + 6], bh
mov ecx, dword [edi]
xor ebx, ebx
push ebx
push esi
call fcn.100b40e0
test al, al
je 0x100b7fc8
xor eax, eax
mov ecx, ebx
inc eax
shl eax, cl
mov ecx, dword [ebp + 8]
mov edx, eax
and dl, 0xf
mov edi, ecx
mov cl, byte [ecx + esi*2 + 0x24c]
or dl, cl
cmp byte [esp + 6], 0
mov byte [edi + esi*2 + 0x24c], dl
mov edi, dword [esp + 0xc]
jne 0x100b7fc8
mov edx, ecx
and cl, 0xf0
or dl, al
shl al, 4
and dl, 0xf
or al, dl
mov edx, dword [ebp + 8]
or cl, al
mov byte [edx + esi*2 + 0x24c], cl
mov ecx, dword [edi]
inc ebx
cmp ebx, 4
jne 0x100b7f76
cmp byte [ecx + esi + 0x162d8], 0
je case.0x100b7ff7.1
call fcn.100b3628
movzx eax, ax
cmp eax, 0x103
ja case.0x100b7ff7.1
mov eax, dword [edi]
mov eax, dword [eax + esi*4 + 0x162b8]
cmp eax, 4
ja case.0x100b7ff7.1
jmp dword [eax*4 + 0x101dfeb0]
mov eax, dword [ebp + 8]
or byte [eax + esi*2 + 0x24d], 3
jmp case.0x100b7ff7.1
mov eax, dword [ebp + 8]
mov ecx, eax
mov al, byte [eax + esi*2 + 0x24d]
and al, 0xfc
or al, 1
jmp 0x100b802d
mov eax, dword [ebp + 8]
mov ecx, eax
mov al, byte [eax + esi*2 + 0x24d]
and al, 0xfc
or al, 2
mov byte [ecx + esi*2 + 0x24d], al
inc esi
cmp esi, 8
jne 0x100b7f72
xor esi, esi
xor ebx, ebx
mov ecx, dword [edi]
push ebx
push esi
call fcn.100b40c2
test al, al
je 0x100b8092
xor eax, eax
mov ecx, ebx
inc eax
shl eax, cl
mov ecx, dword [ebp + 8]
mov edx, eax
and dl, 0xf
mov edi, ecx
mov cl, byte [ecx + esi*2 + 0x248]
or dl, cl
cmp byte [esp + 8], 0
mov byte [edi + esi*2 + 0x248], dl
mov edi, dword [esp + 0xc]
je 0x100b8092
shl al, 4
and dl, 0xf
and cl, 0xf0
or dl, al
or dl, cl
mov ecx, dword [ebp + 8]
mov byte [ecx + esi*2 + 0x248], dl
inc ebx
cmp ebx, 4
jne 0x100b8042
inc esi
cmp esi, 2
jne 0x100b8040
mov ecx, dword [edi]
call fcn.100b35a6
test al, al
je 0x100b816d
cmp byte [esp + 7], 0
mov ecx, dword [ebp + 8]
mov al, 0x11
jne 0x100b80c3
mov al, byte [ecx + 0x25c]
and al, 0xf0
or al, 1
mov byte [ecx + 0x25c], al
jmp 0x100b816d
xor bh, 1
xor esi, esi
and bh, bl
mov byte [esp + 6], bh
xor ebx, ebx
mov eax, dword [edi]
mov ecx, dword [eax + 0x16344]
push ebx
push esi
call fcn.10103112
mov cl, byte [eax]
cmp cl, 0xff
je 0x100b8159
cmp cl, 0xa
je 0x100b810c
xor edx, edx
inc edx
cmp cl, 5
jne 0x100b8125
mov eax, dword [ebp + 8]
mov ecx, ebx
shl edx, cl
cmp byte [esp + 6], 0
jmp 0x100b8131
cmp byte [eax + 3], 0
mov ecx, ebx
setne al
or al, byte [esp + 8]
xor edx, edx
inc edx
shl edx, cl
test al, al
mov eax, dword [ebp + 8]
jmp 0x100b8131
mov eax, dword [ebp + 8]
mov ecx, ebx
shl edx, cl
cmp byte [esp + 7], 0
mov al, byte [eax + esi*2 + 0x248]
je 0x100b814a
mov ecx, eax
and al, 0xf0
or cl, dl
shl dl, 4
and cl, 0xf
or dl, cl
jmp 0x100b814d
and dl, 0xf
mov ecx, dword [ebp + 8]
or al, dl
mov byte [ecx + esi*2 + 0x248], al
inc ebx
cmp ebx, 4
jne 0x100b80db
inc esi
cmp esi, 0x20
jne 0x100b80d9
mov eax, dword [ebp + 8]
test byte [eax + 0x40], 1
je 0x100b81b8
xor esi, esi
mov edi, dword [esp + 0xc]
mov ebx, 4
mov eax, dword [edi]
mov ecx, dword [eax + 0x16344]
push 0
push esi
call fcn.10103112
mov ecx, dword [ebp + 8]
mov al, byte [eax + 2]
mov edx, ecx
mov cl, byte [ecx + esi*2 + 0x249]
shl al, 2
and cl, 0xfb
or cl, al
dec ebx
mov byte [edx + esi*2 + 0x249], cl
jne 0x100b8181
inc esi
cmp esi, 0x20
jne 0x100b8178
mov eax, dword [ebp + 8]
xor edx, edx
mov ecx, 0xfffffd78
xor edx, dword [eax + ecx + 0x288]
add ecx, 4
jne 0x100b81c2
mov dword [eax + 0x288], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4