Function at 0x18bab
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x13e0
call fcn.00040810
mov eax, dword [0x4e078]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
push 0xf
pop edi
mov dword [ebp - 0x1394], eax
xor ebx, ebx
push 0x48100
lea eax, [ebp - 0x107c]
mov esi, ecx
push eax
mov dword [ebp - 0x1398], esi
mov dword [ebp - 0x1030], edi
mov dword [ebp - 0x1034], ebx
mov byte [ebp - 0x1044], bl
mov dword [ebp - 0x1068], edi
mov dword [ebp - 0x106c], ebx
mov byte [ebp - 0x107c], bl
call fcn.00020eaa
push 0x48104
lea eax, [ebp - 0x10b4]
push eax
mov dword [ebp - 0x10a0], edi
mov dword [ebp - 0x10a4], ebx
mov byte [ebp - 0x10b4], bl
call fcn.00020eaa
push 5
push ebx
mov eax, esi
lea ecx, [ebp - 0x1028]
mov dword [ebp - 0x1014], edi
mov dword [ebp - 0x1018], ebx
mov byte [ebp - 0x1028], bl
call fcn.00021132
push 0x48108
lea edx, [ebp - 0x1028]
call fcn.00020c90
neg eax
sbb al, al
inc al
push 1
lea esi, [ebp - 0x1028]
mov byte [ebp - 0x1390], al
call fcn.0002105e
cmp byte [ebp - 0x1390], bl
je 0x196c0
push 1
lea eax, [ebp - 0x1390]
push eax
push dword [ebp - 0x1398]
mov byte [ebp - 0x1390], 0x2f
push 5
pop eax
call fcn.00020ecd
mov dword [ebp - 0x13a4], eax
cmp eax, 0xffffffff
jne 0x18ce1
push eax
mov eax, dword [ebp - 0x1398]
push 5
lea ecx, [ebp - 0x1028]
mov dword [ebp - 0x1014], edi
mov dword [ebp - 0x1018], ebx
mov byte [ebp - 0x1028], bl
call fcn.00021132
lea eax, [ebp - 0x1044]
jmp 0x18d43
add eax, 0xfffffffb
push eax
mov eax, dword [ebp - 0x1398]
push 5
lea esi, [ebp - 0x115c]
call fcn.00020d2d
mov edi, esi
lea eax, [ebp - 0x1044]
call fcn.00020d51
push 1
xor ebx, ebx
call fcn.0002105e
mov eax, dword [ebp - 0x1398]
and dword [ebp - 0x1018], ebx
push 0xffffffffffffffff
push dword [ebp - 0x13a4]
lea ecx, [ebp - 0x1028]
mov dword [ebp - 0x1014], 0xf
mov byte [ebp - 0x1028], bl
call fcn.00021132
lea eax, [ebp - 0x10b4]
lea edi, [ebp - 0x1028]
call fcn.00020d51
push 1
xor ebx, ebx
mov esi, edi
call fcn.0002105e
push 1
lea eax, [ebp - 0x1390]
push eax
lea eax, [ebp - 0x1044]
push eax
xor eax, eax
mov byte [ebp - 0x1390], 0x3a
call fcn.00020ecd
mov dword [ebp - 0x1398], eax
cmp eax, 0xffffffff
je 0x18e15
and dword [ebp - 0x1018], ebx
inc eax
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x1044]
lea ecx, [ebp - 0x1028]
mov dword [ebp - 0x1014], 0xf
mov byte [ebp - 0x1028], bl
call fcn.00021132
lea edi, [ebp - 0x1028]
lea eax, [ebp - 0x107c]
call fcn.00020d51
push 1
mov esi, edi
call fcn.0002105e
push dword [ebp - 0x1398]
xor eax, eax
mov dword [ebp - 0x1018], eax
mov byte [ebp - 0x1028], al
push eax
lea eax, [ebp - 0x1044]
lea ecx, [ebp - 0x1028]
mov dword [ebp - 0x1014], 0xf
call fcn.00021132
lea edi, [ebp - 0x1028]
lea eax, [ebp - 0x1044]
call fcn.00020d51
push 1
mov esi, edi
call fcn.0002105e
cmp dword [ebp - 0x1068], 0x10
mov edx, dword [ebp - 0x107c]
jae 0x18e2a
lea edx, [ebp - 0x107c]
call fcn.00024359
mov dword [ebp - 0x1398], eax
lea eax, [ebp - 0x138c]
push eax
push 0x202
call dword [0x41270]
test eax, eax
je 0x18e55
push 0x4782b
jmp 0x196c5
push 6
push 1
push 2
pop esi
push esi
call dword [0x41284]
mov dword [ebp - 0x13a0], eax
cmp eax, 0xffffffff
jne 0x18e7e
call dword [0x4127c]
push 0x4782e
jmp 0x196c5
xor ebx, ebx
push 7
xor eax, eax
pop ecx
lea edi, [ebp - 0x13d8]
mov dword [ebp - 0x13dc], ebx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x1044]
xor edi, edi
inc edi
cmp dword [ebp - 0x1030], 0x10
mov dword [ebp - 0x13d8], esi
mov dword [ebp - 0x13d4], edi
mov dword [ebp - 0x13b8], ebx
jae 0x18ebd
lea eax, [ebp - 0x1044]
lea ecx, [ebp - 0x13b8]
push ecx
lea ecx, [ebp - 0x13dc]
push ecx
push ebx
push eax
call dword [0x41274]
test eax, eax
je 0x18eff
push dword [ebp - 0x13a0]
call dword [0x4128c]
call dword [0x4127c]
mov esi, dword [ebp - 0x1394]
push 0x4782f
call fcn.00020b15
push edi
jmp 0x196d2
push dword [ebp - 0x1398]
xor eax, eax
lea edi, [ebp - 0x116c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov word [ebp - 0x116c], si
call dword [0x41278]
mov word [ebp - 0x116a], ax
mov eax, dword [ebp - 0x13b8]
mov ecx, dword [eax + 0x18]
mov ecx, dword [ecx + 4]
push eax
mov dword [ebp - 0x1168], ecx
call dword [0x41288]
push 0x10
lea eax, [ebp - 0x116c]
push eax
push dword [ebp - 0x13a0]
call dword [0x4126c]
cmp eax, 0xffffffff
jne 0x18f74
push dword [ebp - 0x13a0]
call dword [0x4128c]
call dword [0x4127c]
push 0x47832
jmp 0x196c5
push 0xf
pop esi
push 0x48110
lea eax, [ebp - 0x1140]
push eax
mov dword [ebp - 0x112c], esi
mov dword [ebp - 0x1130], ebx
mov byte [ebp - 0x1140], bl
call fcn.00020eaa
lea edi, [ebp - 0x10b4]
lea eax, [ebp - 0x11dc]
call fcn.00021414
push 0x48178
push eax
call fcn.00020e2b
mov edi, eax
lea eax, [ebp - 0x115c]
mov dword [ebp - 0x1148], esi
mov dword [ebp - 0x114c], ebx
mov byte [ebp - 0x115c], bl
call fcn.00020d51
lea eax, [ebp - 0x1044]
push eax
lea eax, [ebp - 0x11f8]
push eax
lea ecx, [ebp - 0x115c]
call fcn.0002146b
pop ecx
pop ecx
push 0x48174
push eax
call fcn.00020e2b
mov edi, eax
lea eax, [ebp - 0x1098]
mov dword [ebp - 0x1084], esi
mov dword [ebp - 0x1088], ebx
mov byte [ebp - 0x1098], bl
call fcn.00020d51
lea eax, [ebp - 0x107c]
push eax
lea eax, [ebp - 0x11c0]
push eax
lea ecx, [ebp - 0x1098]
call fcn.0002146b
pop ecx
pop ecx
push str._m_b
push eax
call fcn.00020e2b
mov edi, eax
lea eax, [ebp - 0x1028]
mov dword [ebp - 0x1014], esi
mov dword [ebp - 0x1018], ebx
mov byte [ebp - 0x1028], bl
call fcn.00020d51
lea eax, [ebp - 0x1140]
push eax
lea eax, [ebp - 0x11a4]
push eax
lea ecx, [ebp - 0x1028]
call fcn.0002146b
pop ecx
pop ecx
push 0x48114
push eax
call fcn.00020e2b
mov edi, eax
lea eax, [ebp - 0x10d0]
mov dword [ebp - 0x10bc], esi
mov dword [ebp - 0x10c0], ebx
mov byte [ebp - 0x10d0], bl
call fcn.00020d51
push 1
xor ebx, ebx
lea esi, [ebp - 0x11a4]
call fcn.0002105e
push 1
lea esi, [ebp - 0x1028]
call fcn.0002105e
push 1
lea esi, [ebp - 0x11c0]
call fcn.0002105e
push 1
lea esi, [ebp - 0x1098]
call fcn.0002105e
push 1
lea esi, [ebp - 0x11f8]
call fcn.0002105e
push 1
lea esi, [ebp - 0x115c]
call fcn.0002105e
push 1
lea esi, [ebp - 0x11dc]
call fcn.0002105e
cmp dword [ebp - 0x10bc], 0x10
mov eax, dword [ebp - 0x10d0]
jae 0x19116
lea eax, [ebp - 0x10d0]
mov esi, dword [ebp - 0x13a0]
xor ebx, ebx
push ebx
push dword [ebp - 0x10c0]
push eax
push esi
call dword [0x41290]
cmp eax, 0xffffffff
jne 0x19170
push esi
call dword [0x4128c]
call dword [0x4127c]
push 0x47833
mov esi, dword [ebp - 0x1394]
call fcn.00020b15
push 1
xor ebx, ebx
lea esi, [ebp - 0x10d0]
call fcn.0002105e
push 1
lea esi, [ebp - 0x1140]
call fcn.0002105e
jmp 0x196d0
push ebx
push 0x1000
lea eax, [ebp - 0x100c]
push eax
push esi
call dword [0x41280]
test eax, eax
jg 0x1919c
push esi
call dword [0x4128c]
call dword [0x4127c]
push 0x47839
jmp 0x19144
push 0xf
pop edi
push 0x48194
lea eax, [ebp - 0x1108]
push eax
mov dword [ebp - 0x10f4], edi
mov dword [ebp - 0x10f8], ebx
mov byte [ebp - 0x1108], bl
call fcn.00020eaa
mov esi, dword [0x412d8]
call esi
and eax, 0x800000ff
jns 0x191d8
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0x13b4], al
call esi
and eax, 0x800000ff
jns 0x191ee
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0x13b3], al
call esi
and eax, 0x800000ff
jns 0x19204
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0x13b2], al
call esi
and eax, 0x800000ff
jns 0x1921a
dec eax
or eax, 0xffffff00
inc eax
push 0xffffffffffffff81
lea esi, [ebp - 0x1060]
mov byte [ebp - 0x13b1], al
mov dword [ebp - 0x104c], edi
mov dword [ebp - 0x1050], ebx
mov byte [ebp - 0x1060], bl
call fcn.00020e50
mov edi, dword [ebp - 0x10f8]
cmp edi, 0x7d
ja 0x19258
mov al, byte [ebp - 0x10f8]
or al, 0x80
movzx eax, al
push eax
jmp 0x19279
lea esi, [ebp - 0x1060]
cmp edi, 0xffff
ja 0x19286
push 0xfffffffffffffffe
call fcn.00020e50
mov eax, edi
shr eax, 8
push eax
call fcn.00020e50
push edi
lea esi, [ebp - 0x1060]
call fcn.00020e50
jmp 0x192b9
push 0xffffffffffffffff
call fcn.00020e50
push 0x38
mov dword [ebp - 0x13a8], ebx
pop ebx
mov edx, dword [ebp - 0x13a8]
mov eax, edi
mov ecx, ebx
call 0x41600
movzx eax, al
push eax
lea esi, [ebp - 0x1060]
call fcn.00020e50
sub ebx, 8
jns 0x19296
lea eax, [ebp - 0x13b4]
push eax
push 4
pop ebx
lea eax, [ebp - 0x1060]
call fcn.00020b70
xor ebx, ebx
test edi, edi
je 0x1930c
cmp dword [ebp - 0x10f4], 0x10
mov eax, dword [ebp - 0x1108]
jae 0x192e9
lea eax, [ebp - 0x1108]
mov ecx, ebx
and ecx, 3
mov cl, byte [ebp + ecx - 0x13b4]
xor cl, byte [eax + ebx]
lea esi, [ebp - 0x1060]
movzx eax, cl
push eax
call fcn.00020e50
inc ebx
cmp ebx, edi
jb 0x192d4
cmp dword [ebp - 0x104c], 0x10
mov eax, dword [ebp - 0x1060]
jae 0x19321
lea eax, [ebp - 0x1060]
xor esi, esi
push esi
push dword [ebp - 0x1050]
push eax
push dword [ebp - 0x13a0]
call dword [0x41290]
cmp eax, 0xffffffff
jne 0x1937f
push dword [ebp - 0x13a0]
call dword [0x4128c]
call dword [0x4127c]
mov esi, dword [ebp - 0x1394]
push 0x4783a
call fcn.00020b15
push 1
xor ebx, ebx
lea esi, [ebp - 0x1060]
call fcn.0002105e
push 1
lea esi, [ebp - 0x1108]
call fcn.0002105e
jmp 0x1914f
mov dword [ebp - 0x108c], esi
mov dword [ebp - 0x1088], esi
mov dword [ebp - 0x1084], esi
mov dword [ebp - 0x10d8], 0xf
mov dword [ebp - 0x10dc], esi
mov byte [ebp - 0x10ec], 0
mov byte [ebp - 0x1390], 0
push esi
push 0x1000
lea eax, [ebp - 0x100c]
push eax
push dword [ebp - 0x13a0]
call dword [0x41280]
cmp eax, esi
jle 0x195d7
push dword [ebp - 0x13b8]
lea eax, [ebp + eax - 0x100c]
push eax
lea eax, [ebp - 0x100c]
push eax
push dword [ebp - 0x1088]
lea ecx, [ebp - 0x108c]
call fcn.000215d0
jmp 0x1959d
mov al, byte [ebx + 1]
mov dl, byte [ebx]
mov cl, al
and al, 0x7f
shr dl, 7
movzx eax, al
mov byte [ebp - 0x13ad], dl
cdq
shr cl, 7
push 2
pop esi
mov byte [ebp - 0x1399], cl
mov dword [ebp - 0x13ac], eax
mov dword [ebp - 0x13a8], edx
cmp eax, 0x7e
jne 0x1945e
test edx, edx
jne 0x1945e
cmp dword [ebp - 0x1398], 4
jb 0x195c8
movzx eax, byte [ebx + 2]
movzx edx, byte [ebx + 3]
shl eax, 8
or eax, edx
cdq
push 4
mov dword [ebp - 0x13ac], eax
mov dword [ebp - 0x13a8], edx
pop esi
jmp 0x194b4
cmp eax, 0x7f
jne 0x194b4
test edx, edx
jne 0x194b4
cmp dword [ebp - 0x1398], 0xa
jb 0x195c8
and dword [ebp - 0x13ac], edx
and dword [ebp - 0x13a8], edx
mov ecx, dword [ebp - 0x13ac]
mov edi, dword [ebp - 0x13a8]
movzx eax, byte [ebx + esi]
shld edi, ecx, 8
cdq
shl ecx, 8
or eax, ecx
or edx, edi
inc esi
mov dword [ebp - 0x13ac], eax
mov dword [ebp - 0x13a8], edx
cmp esi, 0xa
jl 0x19480
mov cl, byte [ebp - 0x1399]
mov dword [ebp - 0x13a4], 0
test cl, cl
je 0x194dc
lea eax, [esi + 4]
cmp dword [ebp - 0x1398], eax
jb 0x195c8
add esi, ebx
lea edi, [ebp - 0x13a4]
movsd dword es:[edi], dword [esi]
mov esi, eax
xor eax, eax
mov edx, esi
add edx, dword [ebp - 0x13ac]
adc eax, dword [ebp - 0x13a8]
xor ecx, ecx
cmp ecx, eax
jb 0x195c8
ja 0x19504
cmp dword [ebp - 0x1398], edx
jb 0x195c8
mov eax, dword [ebp - 0x13ac]
lea edi, [esi + ebx]
add eax, edi
push eax
push edi
lea esi, [ebp - 0x101c]
call fcn.000214a7
cmp byte [ebp - 0x1399], 0
mov esi, dword [ebp - 0x101c]
je 0x19555
mov ecx, dword [ebp - 0x1018]
xor eax, eax
sub ecx, esi
mov dword [ebp - 0x1398], ecx
je 0x19555
mov ecx, eax
and ecx, 3
mov cl, byte [ebp + ecx - 0x13a4]
xor byte [esi + eax], cl
inc eax
cmp eax, dword [ebp - 0x1398]
jb 0x1953d
push dword [ebp - 0x13b8]
lea eax, [ebp - 0x10ec]
push dword [ebp - 0x1018]
push esi
call fcn.00021724
mov eax, dword [ebp - 0x13ac]
add eax, edi
push eax
push ebx
lea eax, [ebp - 0x13bc]
push eax
lea edi, [ebp - 0x108c]
call fcn.00020ce9
cmp byte [ebp - 0x13ad], 0
lea edx, [ebp - 0x101c]
jne 0x195bc
call fcn.000210d8
mov ebx, dword [ebp - 0x108c]
mov eax, dword [ebp - 0x1088]
sub eax, ebx
mov dword [ebp - 0x1398], eax
cmp eax, 2
jae 0x193fb
jmp 0x195c8
mov byte [ebp - 0x1390], 1
call fcn.000210d8
xor esi, esi
cmp byte [ebp - 0x1390], 0
je 0x193af
mov dword [ebp - 0x1114], esi
push 0xffffffffffffff88
lea esi, [ebp - 0x1124]
mov dword [ebp - 0x1110], 0xf
mov byte [ebp - 0x1124], 0
call fcn.00020e50
xor edi, edi
push edi
call fcn.00020e50
cmp dword [ebp - 0x1110], 0x10
mov eax, dword [ebp - 0x1124]
jae 0x19614
mov eax, esi
push edi
push dword [ebp - 0x1114]
push eax
push dword [ebp - 0x13a0]
call dword [0x41290]
push dword [ebp - 0x13a0]
call dword [0x4128c]
call dword [0x4127c]
cmp dword [ebp - 0x10d8], 0x10
mov ecx, dword [ebp - 0x10ec]
mov eax, ecx
jae 0x19651
lea eax, [ebp - 0x10ec]
add eax, dword [ebp - 0x10dc]
cmp dword [ebp - 0x10d8], 0x10
jae 0x19666
lea ecx, [ebp - 0x10ec]
push eax
push ecx
lea esi, [ebp - 0x1188]
call fcn.000214de
mov eax, dword [ebp - 0x1394]
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], 0xf
mov edi, esi
mov byte [eax], 0
call fcn.00020d51
push 1
xor ebx, ebx
call fcn.0002105e
push 1
lea esi, [ebp - 0x1124]
call fcn.0002105e
push 1
lea esi, [ebp - 0x10ec]
call fcn.0002105e
lea edx, [ebp - 0x108c]
call fcn.000210d8
jmp 0x1935e
push 0x4782a
mov esi, dword [ebp - 0x1394]
call fcn.00020b15
push 1
xor ebx, ebx
lea esi, [ebp - 0x10b4]
call fcn.0002105e
push 1
lea esi, [ebp - 0x107c]
call fcn.0002105e
push 1
lea esi, [ebp - 0x1044]
call fcn.0002105e
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x1394]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0002f48c
leave
ret