Function at 0x11df0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x60]
mov edx, dword [ebp + 8]
push ebx
mov ebx, dword [edx + 0x28]
push esi
mov esi, dword [eax + 0xc]
push edi
xor eax, eax
lea edi, [ebp - 0x2c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ecx + 0xc]
mov eax, 0x24018
cmp edi, eax
mov dword [ebp - 0xc], ecx
ja 0x12347
je 0x12281
sub edi, 0x24000
je 0x12085
push 4
pop eax
sub edi, eax
je 0x11fe5
sub edi, eax
je 0x12281
sub edi, eax
je 0x11f0f
sub edi, eax
je 0x11ea1
sub edi, eax
jne 0x12372
mov eax, dword [ebp + 0xc]
and dword [eax + 0x1c], 0
mov dword [ebp - 4], 0xc0000010
cmp dword [ebp - 4], 0x80000016
jne 0x11e85
push dword [ebx]
push dword [ebp + 0xc]
call dword [0x10f24]
mov eax, dword [ebp + 0xc]
and dword [eax + 0x1c], 0
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp - 4]
xor dl, dl
mov ecx, eax
mov dword [eax + 0x18], esi
call dword [0x10f20]
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 8
mov eax, dword [ebp + 0xc]
xor esi, esi
mov dword [eax + 0x1c], esi
cmp byte [ebx + 0x2d], 0
jne 0x11eb8
mov dword [ebp - 4], 0xc0000001
jmp 0x11e85
mov byte [ebp - 0x42], 0xa
mov dword [ebp - 0x38], 0xa
mov byte [ebp - 0x2c], 0x47
mov al, byte [ebx + 0x2e]
mov byte [ebp - 0x29], al
mov al, byte [ebx + 0x2f]
mov byte [ebp - 0x28], al
mov al, byte [ebx + 0x30]
mov byte [ebp - 0x27], al
mov al, byte [ebx + 0x31]
mov byte [ebp - 0x26], al
mov al, byte [ebx + 0x32]
mov byte [ebp - 0x25], al
mov al, byte [ebx + 0x33]
push esi
mov byte [ebp - 0x24], al
push esi
lea eax, [ebp - 0x48]
push eax
push ebx
call section..text
cmp eax, esi
mov dword [ebp - 4], eax
jl 0x11e6a
and byte [ebx + 0x2d], 0
mov byte [ebx + 0x34], 1
jmp 0x11e6a
push 0x20416443
push 0x18
push eax
call dword [0x10f1c]
mov esi, eax
mov eax, dword [ebp + 0xc]
xor edi, edi
cmp esi, edi
mov dword [eax + 0x1c], edi
jne 0x11f37
mov dword [ebp - 4], 0xc000009a
jmp 0x11e85
cmp byte [ebx + 0x2d], 1
jne 0x11f4d
push edi
push esi
call dword [0x10f18]
mov dword [ebp - 4], edi
jmp 0x11e85
or byte [ebp - 0x2b], 2
or byte [ebp - 0x2a], 0x40
push 0x18
push esi
lea eax, [ebp - 0x48]
push eax
push ebx
mov byte [ebp - 0x42], 0xa
mov dword [ebp - 0x38], 0xa
mov byte [ebp - 0x2c], 0x42
mov byte [ebp - 0x24], 0x18
call section..text
cmp eax, edi
mov dword [ebp - 4], eax
jge 0x11f80
push edi
push esi
jmp 0x11fda
mov al, byte [esi + 9]
mov byte [ebx + 0x2e], al
mov al, byte [esi + 0xa]
mov byte [ebx + 0x2f], al
mov al, byte [esi + 0xb]
mov byte [ebx + 0x30], al
xor eax, eax
lea edi, [ebp - 0x2c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor edi, edi
push edi
push edi
lea eax, [ebp - 0x48]
push eax
push ebx
mov byte [ebp - 0x42], 0xa
mov dword [ebp - 0x38], 0xa
mov byte [ebp - 0x2c], 0xc6
call section..text
cmp eax, edi
push edi
mov dword [ebp - 4], eax
push esi
jl 0x11fda
and byte [ebx + 0x34], 0
mov byte [ebx + 0x2d], 1
mov al, byte [esi + 9]
mov byte [ebx + 0x2e], al
mov al, byte [esi + 0xa]
mov byte [ebx + 0x2f], al
mov al, byte [esi + 0xb]
mov byte [ebx + 0x30], al
call dword [0x10f18]
jmp 0x11e6a
mov eax, dword [ebp + 0xc]
xor edi, edi
mov dword [eax + 0x1c], edi
cmp dword [ecx + 8], 3
jae 0x11fff
mov dword [ebp - 4], 0xc0000004
jmp 0x11e85
mov byte [ebp - 0x42], 0xa
mov dword [ebp - 0x38], 0xa
mov byte [ebp - 0x2c], 0x47
mov al, byte [esi]
mov byte [ebp - 0x29], al
mov al, byte [esi + 1]
mov byte [ebp - 0x28], al
mov al, byte [esi + 2]
mov byte [ebp - 0x27], al
mov al, byte [esi]
mov byte [ebp - 0x26], al
mov al, byte [esi + 1]
mov byte [ebp - 0x25], al
mov al, byte [esi + 2]
push edi
mov byte [ebp - 0x24], al
push edi
lea eax, [ebp - 0x48]
push eax
push ebx
call section..text
cmp eax, edi
mov dword [ebp - 4], eax
jl 0x1206e
mov byte [ebx + 0x2d], 1
mov al, byte [esi]
mov byte [ebx + 0x2e], al
mov al, byte [esi + 1]
mov byte [ebx + 0x2f], al
mov al, byte [esi + 2]
mov byte [ebx + 0x30], al
mov al, byte [esi]
mov byte [ebx + 0x31], al
mov al, byte [esi + 1]
mov byte [ebx + 0x32], al
mov al, byte [esi + 2]
mov byte [ebx + 0x33], al
jmp 0x11e6a
cmp eax, 0xc0000010
jne 0x11e6a
mov dword [ebp - 4], 0xc0000015
jmp 0x11e6a
cmp dword [ecx + 4], 4
jae 0x12097
mov dword [ebp - 4], 0xc0000023
jmp 0x11e7e
push edx
call fcn.00010548
test al, al
je 0x120ad
mov dword [ebp - 4], 0x80000011
jmp 0x11e7e
push 0x20416443
push 0x324
push 4
call dword [0x10f1c]
mov edx, eax
test edx, edx
mov dword [ebp + 8], edx
je 0x1242d
xor eax, eax
push 0x324
mov edi, edx
mov ecx, 0xc9
rep stosd dword es:[edi], eax
or byte [ebp - 0x2b], 2
push edx
lea eax, [ebp - 0x48]
push eax
push ebx
mov byte [ebp - 0x2c], 0x43
mov byte [ebp - 0x25], 3
mov byte [ebp - 0x24], 0x24
mov dword [ebp - 0x38], 0xa
mov byte [ebp - 0x42], 0xa
call section..text
xor edi, edi
cmp eax, edi
mov dword [ebp - 4], eax
jge 0x12127
cmp eax, 0xc000003c
je 0x12127
push edi
push dword [ebp + 8]
call dword [0x10f18]
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x1c], edi
jmp 0x11e6a
mov ecx, dword [ebp + 8]
mov al, byte [ecx]
mov byte [esi], al
mov al, byte [ecx + 1]
mov byte [esi + 1], al
mov al, byte [ecx + 2]
mov byte [ebp + 0xb], al
shr al, 4
mov dl, 0xa
imul dl
mov dl, al
mov al, byte [ebp + 0xb]
and al, 0xf
add dl, al
mov byte [esi + 2], dl
mov al, byte [ecx + 3]
mov byte [ebp + 0xb], al
shr al, 4
mov dl, 0xa
imul dl
mov dl, byte [ebp + 0xb]
and dl, 0xf
add al, dl
mov byte [esi + 3], al
mov byte [ebp + 0xb], dl
movzx edx, byte [esi + 2]
movzx eax, al
sub eax, edx
mov edx, dword [ebp - 0xc]
mov dword [ebp - 4], edi
mov edi, dword [edx + 4]
sub edi, 4
shr edi, 3
inc eax
cmp edi, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], edi
mov dword [ebp + 8], edi
jb 0x12191
mov dword [ebp + 8], eax
and dword [ebp - 0xc], 0
cmp dword [ebp + 8], 0
jbe 0x1220d
mov edx, dword [ebp + 8]
lea eax, [ecx + 6]
mov dword [ebp - 8], ecx
sub dword [ebp - 8], esi
mov dword [ebp - 0x10], eax
lea edi, [esi + 5]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], edx
and byte [edi - 1], 0
mov edx, dword [ebp - 8]
mov dl, byte [edx + edi]
xor dl, byte [edi]
and dl, 0xf
xor byte [edi], dl
mov al, byte [eax]
and byte [edi + 2], 0
and byte [edi + 3], 0
mov byte [ebp + 0xb], al
shr al, 4
mov dl, 0xa
imul dl
mov dl, al
mov al, byte [ebp + 0xb]
and al, 0xf
add dl, al
mov eax, dword [ebp - 0x10]
mov byte [edi + 1], dl
mov dl, byte [eax + 3]
mov byte [edi + 4], dl
mov dl, byte [eax + 4]
mov byte [edi + 5], dl
mov dl, byte [eax + 5]
mov byte [edi + 6], dl
add eax, 8
add edi, 8
dec dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
jne 0x121b3
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
cmp edi, eax
mov edx, dword [ebp - 0xc]
jbe 0x1224a
lea esi, [esi + edx*8]
and byte [esi + 4], 0
lea edi, [ecx + edx*8]
mov al, byte [edi + 5]
xor al, byte [esi + 5]
and al, 0xf
xor byte [esi + 5], al
mov al, byte [edi + 6]
and byte [esi + 7], 0
and byte [esi + 8], 0
mov byte [esi + 6], al
mov al, byte [edi + 9]
mov byte [esi + 9], al
mov al, byte [edi + 0xa]
mov byte [esi + 0xa], al
mov al, byte [edi + 0xb]
mov byte [esi + 0xb], al
inc edx
lea eax, [edx*8 + 4]
mov edx, dword [ebp + 0xc]
mov dword [edx + 0x1c], eax
and byte [ebx + 0x2d], 0
and byte [ebx + 0x2e], 0
and byte [ebx + 0x2f], 0
and byte [ebx + 0x30], 0
and byte [ebx + 0x31], 0
and byte [ebx + 0x32], 0
and byte [ebx + 0x33], 0
push 0
push ecx
call dword [0x10f18]
jmp 0x11e85
mov ecx, dword [ebp + 0xc]
push 0xa
pop edi
xor eax, eax
push eax
push eax
mov dword [ecx + 0x1c], eax
lea eax, [ebp - 0x48]
push eax
push ebx
mov byte [ebp - 0x42], 0xa
mov dword [ebp - 0x38], edi
mov byte [ebp - 0x2c], 0xc6
call section..text
test eax, eax
mov dword [ebp - 4], eax
jl 0x122ca
and byte [ebx + 0x34], 0
and byte [ebx + 0x2d], 0
and byte [ebx + 0x2e], 0
and byte [ebx + 0x2f], 0
and byte [ebx + 0x30], 0
and byte [ebx + 0x31], 0
and byte [ebx + 0x32], 0
and byte [ebx + 0x33], 0
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0xc], 0x24008
je 0x11e6a
cmp dword [eax + 8], 6
jb 0x11ff3
mov byte [ebp - 0x42], 0xa
mov dword [ebp - 0x38], edi
mov byte [ebp - 0x2c], 0x47
mov al, byte [esi]
mov byte [ebp - 0x29], al
mov al, byte [esi + 1]
mov byte [ebp - 0x28], al
mov al, byte [esi + 2]
mov byte [ebp - 0x27], al
mov al, byte [esi + 3]
mov byte [ebp - 0x26], al
mov al, byte [esi + 4]
mov byte [ebp - 0x25], al
mov al, byte [esi + 5]
push 0
mov byte [ebp - 0x24], al
push 0
lea eax, [ebp - 0x48]
push eax
push ebx
call section..text
test eax, eax
mov dword [ebp - 4], eax
jl 0x11e6a
and byte [ebx + 0x2d], 0
mov byte [ebx + 0x34], 1
mov al, byte [esi + 3]
mov byte [ebx + 0x31], al
mov al, byte [esi + 4]
mov byte [ebx + 0x32], al
mov al, byte [esi + 5]
jmp 0x12066
sub edi, 0x24028
je 0x11e5c
sub edi, 4
je 0x123e9
sub edi, 8
je 0x11e5c
sub edi, 0x7cc
je 0x123c7
sub edi, 8
je 0x12380
push dword [ebp + 0xc]
push edx
call fcn.0001052a
jmp 0x11e9a
mov ecx, dword [ebp + 0xc]
xor eax, eax
push eax
push eax
mov dword [ecx + 0x1c], eax
lea eax, [ebp - 0x48]
push eax
push ebx
mov byte [ebp - 0x42], 0xa
mov dword [ebp - 0x38], 0xa
mov byte [ebp - 0x2c], 0xc0
call section..text
and byte [ebx + 0x2d], 0
and byte [ebx + 0x2e], 0
and byte [ebx + 0x2f], 0
and byte [ebx + 0x30], 0
and byte [ebx + 0x31], 0
and byte [ebx + 0x32], 0
and byte [ebx + 0x33], 0
mov dword [ebp - 4], eax
jmp 0x11e6a
push edx
call fcn.00010548
cmp al, 1
jne 0x123dd
and dword [ebp - 4], 0
mov byte [ebx + 0x34], al
jmp 0x11e7e
push dword [ebp + 0xc]
and byte [ebx + 0x34], 0
push dword [ebp + 8]
jmp 0x12376
push 0x20416443
push 0x18
push 4
call dword [0x10f1c]
mov edi, eax
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0x10
jae 0x12421
mov eax, dword [ebp + 0xc]
and dword [eax + 0x1c], 0
test edi, edi
mov dword [ebp - 4], 0xc0000023
je 0x11e85
push 0
push edi
jmp 0x12276
test edi, edi
jne 0x12439
xor eax, eax
mov edi, esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 4], 0xc000009a
jmp 0x11e7e
cmp byte [esi], 1
je 0x1245b
push 0
push edi
call dword [0x10f18]
xor eax, eax
mov edi, esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 4], 0xc0000001
jmp 0x11e7e
or byte [ebp - 0x2b], 2
or byte [ebp - 0x2a], 0x40
push 0x18
push edi
lea eax, [ebp - 0x48]
push eax
push ebx
mov byte [ebp - 0x42], 0xa
mov dword [ebp - 0x38], 0xa
mov byte [ebp - 0x2c], 0x42
mov byte [ebp - 0x24], 0x18
call section..text
test eax, eax
mov dword [ebp - 4], eax
jl 0x1252b
and byte [esi], 0
cmp byte [ebx + 0x2d], 1
jne 0x124a1
and byte [ebx + 0x34], 0
mov byte [esi + 1], 0x12
jmp 0x124b9
cmp byte [edi + 1], 0x11
jne 0x124b1
mov byte [ebx + 0x34], 1
mov byte [esi + 1], 0x11
jmp 0x124b9
and byte [ebx + 0x34], 0
mov byte [esi + 1], 0x13
and byte [esi + 2], 0
mov byte [esi + 3], 0xc
mov byte [esi + 4], 1
mov al, byte [edi + 5]
and al, 0xf
mov byte [esi + 5], al
mov cl, byte [edi + 6]
mov al, cl
shr al, 4
mov dl, 0xa
imul dl
and cl, 0xf
add al, cl
mov byte [esi + 6], al
mov cl, byte [edi + 7]
and byte [esi + 8], 0
mov al, cl
shr al, 4
imul dl
and cl, 0xf
add al, cl
mov byte [esi + 7], al
mov al, byte [edi + 9]
mov byte [esi + 9], al
mov al, byte [edi + 0xa]
mov byte [esi + 0xa], al
mov al, byte [edi + 0xb]
and byte [esi + 0xc], 0
mov byte [esi + 0xb], al
mov al, byte [edi + 0xd]
mov byte [esi + 0xd], al
mov al, byte [edi + 0xe]
mov byte [esi + 0xe], al
mov al, byte [edi + 0xf]
mov byte [esi + 0xf], al
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x1c], 0x10
jmp 0x12532
mov eax, dword [ebp + 0xc]
and dword [eax + 0x1c], 0
push 0
push edi
jmp 0x11fda