Function at 0xab8bab
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x13e0
call fcn.00ae0810
mov eax, dword [0xaee078]
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 0xae8100
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.00ac0eaa
push 0xae8104
lea eax, [ebp - 0x10b4]
push eax
mov dword [ebp - 0x10a0], edi
mov dword [ebp - 0x10a4], ebx
mov byte [ebp - 0x10b4], bl
call fcn.00ac0eaa
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.00ac1132
push 0xae8108
lea edx, [ebp - 0x1028]
call fcn.00ac0c90
neg eax
sbb al, al
inc al
push 1
lea esi, [ebp - 0x1028]
mov byte [ebp - 0x1390], al
call fcn.00ac105e
cmp byte [ebp - 0x1390], bl
je 0xab96c0
push 1
lea eax, [ebp - 0x1390]
push eax
push dword [ebp - 0x1398]
mov byte [ebp - 0x1390], 0x2f
push 5
pop eax
call fcn.00ac0ecd
mov dword [ebp - 0x13a4], eax
cmp eax, 0xffffffff
jne 0xab8ce1
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.00ac1132
lea eax, [ebp - 0x1044]
jmp 0xab8d43
add eax, 0xfffffffb
push eax
mov eax, dword [ebp - 0x1398]
push 5
lea esi, [ebp - 0x115c]
call fcn.00ac0d2d
mov edi, esi
lea eax, [ebp - 0x1044]
call fcn.00ac0d51
push 1
xor ebx, ebx
call fcn.00ac105e
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.00ac1132
lea eax, [ebp - 0x10b4]
lea edi, [ebp - 0x1028]
call fcn.00ac0d51
push 1
xor ebx, ebx
mov esi, edi
call fcn.00ac105e
push 1
lea eax, [ebp - 0x1390]
push eax
lea eax, [ebp - 0x1044]
push eax
xor eax, eax
mov byte [ebp - 0x1390], 0x3a
call fcn.00ac0ecd
mov dword [ebp - 0x1398], eax
cmp eax, 0xffffffff
je 0xab8e15
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.00ac1132
lea edi, [ebp - 0x1028]
lea eax, [ebp - 0x107c]
call fcn.00ac0d51
push 1
mov esi, edi
call fcn.00ac105e
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.00ac1132
lea edi, [ebp - 0x1028]
lea eax, [ebp - 0x1044]
call fcn.00ac0d51
push 1
mov esi, edi
call fcn.00ac105e
cmp dword [ebp - 0x1068], 0x10
mov edx, dword [ebp - 0x107c]
jae 0xab8e2a
lea edx, [ebp - 0x107c]
call fcn.00ac4359
mov dword [ebp - 0x1398], eax
lea eax, [ebp - 0x138c]
push eax
push 0x202
call dword [0xae1270]
test eax, eax
je 0xab8e55
push 0xae782b
jmp 0xab96c5
push 6
push 1
push 2
pop esi
push esi
call dword [0xae1284]
mov dword [ebp - 0x13a0], eax
cmp eax, 0xffffffff
jne 0xab8e7e
call dword [0xae127c]
push 0xae782e
jmp 0xab96c5
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 0xab8ebd
lea eax, [ebp - 0x1044]
lea ecx, [ebp - 0x13b8]
push ecx
lea ecx, [ebp - 0x13dc]
push ecx
push ebx
push eax
call dword [0xae1274]
test eax, eax
je 0xab8eff
push dword [ebp - 0x13a0]
call dword [0xae128c]
call dword [0xae127c]
mov esi, dword [ebp - 0x1394]
push 0xae782f
call fcn.00ac0b15
push edi
jmp 0xab96d2
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 [0xae1278]
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 [0xae1288]
push 0x10
lea eax, [ebp - 0x116c]
push eax
push dword [ebp - 0x13a0]
call dword [0xae126c]
cmp eax, 0xffffffff
jne 0xab8f74
push dword [ebp - 0x13a0]
call dword [0xae128c]
call dword [0xae127c]
push 0xae7832
jmp 0xab96c5
push 0xf
pop esi
push 0xae8110
lea eax, [ebp - 0x1140]
push eax
mov dword [ebp - 0x112c], esi
mov dword [ebp - 0x1130], ebx
mov byte [ebp - 0x1140], bl
call fcn.00ac0eaa
lea edi, [ebp - 0x10b4]
lea eax, [ebp - 0x11dc]
call fcn.00ac1414
push 0xae8178
push eax
call fcn.00ac0e2b
mov edi, eax
lea eax, [ebp - 0x115c]
mov dword [ebp - 0x1148], esi
mov dword [ebp - 0x114c], ebx
mov byte [ebp - 0x115c], bl
call fcn.00ac0d51
lea eax, [ebp - 0x1044]
push eax
lea eax, [ebp - 0x11f8]
push eax
lea ecx, [ebp - 0x115c]
call fcn.00ac146b
pop ecx
pop ecx
push 0xae8174
push eax
call fcn.00ac0e2b
mov edi, eax
lea eax, [ebp - 0x1098]
mov dword [ebp - 0x1084], esi
mov dword [ebp - 0x1088], ebx
mov byte [ebp - 0x1098], bl
call fcn.00ac0d51
lea eax, [ebp - 0x107c]
push eax
lea eax, [ebp - 0x11c0]
push eax
lea ecx, [ebp - 0x1098]
call fcn.00ac146b
pop ecx
pop ecx
push str._m_b
push eax
call fcn.00ac0e2b
mov edi, eax
lea eax, [ebp - 0x1028]
mov dword [ebp - 0x1014], esi
mov dword [ebp - 0x1018], ebx
mov byte [ebp - 0x1028], bl
call fcn.00ac0d51
lea eax, [ebp - 0x1140]
push eax
lea eax, [ebp - 0x11a4]
push eax
lea ecx, [ebp - 0x1028]
call fcn.00ac146b
pop ecx
pop ecx
push 0xae8114
push eax
call fcn.00ac0e2b
mov edi, eax
lea eax, [ebp - 0x10d0]
mov dword [ebp - 0x10bc], esi
mov dword [ebp - 0x10c0], ebx
mov byte [ebp - 0x10d0], bl
call fcn.00ac0d51
push 1
xor ebx, ebx
lea esi, [ebp - 0x11a4]
call fcn.00ac105e
push 1
lea esi, [ebp - 0x1028]
call fcn.00ac105e
push 1
lea esi, [ebp - 0x11c0]
call fcn.00ac105e
push 1
lea esi, [ebp - 0x1098]
call fcn.00ac105e
push 1
lea esi, [ebp - 0x11f8]
call fcn.00ac105e
push 1
lea esi, [ebp - 0x115c]
call fcn.00ac105e
push 1
lea esi, [ebp - 0x11dc]
call fcn.00ac105e
cmp dword [ebp - 0x10bc], 0x10
mov eax, dword [ebp - 0x10d0]
jae 0xab9116
lea eax, [ebp - 0x10d0]
mov esi, dword [ebp - 0x13a0]
xor ebx, ebx
push ebx
push dword [ebp - 0x10c0]
push eax
push esi
call dword [0xae1290]
cmp eax, 0xffffffff
jne 0xab9170
push esi
call dword [0xae128c]
call dword [0xae127c]
push 0xae7833
mov esi, dword [ebp - 0x1394]
call fcn.00ac0b15
push 1
xor ebx, ebx
lea esi, [ebp - 0x10d0]
call fcn.00ac105e
push 1
lea esi, [ebp - 0x1140]
call fcn.00ac105e
jmp 0xab96d0
push ebx
push 0x1000
lea eax, [ebp - 0x100c]
push eax
push esi
call dword [0xae1280]
test eax, eax
jg 0xab919c
push esi
call dword [0xae128c]
call dword [0xae127c]
push 0xae7839
jmp 0xab9144
push 0xf
pop edi
push 0xae8194
lea eax, [ebp - 0x1108]
push eax
mov dword [ebp - 0x10f4], edi
mov dword [ebp - 0x10f8], ebx
mov byte [ebp - 0x1108], bl
call fcn.00ac0eaa
mov esi, dword [0xae12d8]
call esi
and eax, 0x800000ff
jns 0xab91d8
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0x13b4], al
call esi
and eax, 0x800000ff
jns 0xab91ee
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0x13b3], al
call esi
and eax, 0x800000ff
jns 0xab9204
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0x13b2], al
call esi
and eax, 0x800000ff
jns 0xab921a
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.00ac0e50
mov edi, dword [ebp - 0x10f8]
cmp edi, 0x7d
ja 0xab9258
mov al, byte [ebp - 0x10f8]
or al, 0x80
movzx eax, al
push eax
jmp 0xab9279
lea esi, [ebp - 0x1060]
cmp edi, 0xffff
ja 0xab9286
push 0xfffffffffffffffe
call fcn.00ac0e50
mov eax, edi
shr eax, 8
push eax
call fcn.00ac0e50
push edi
lea esi, [ebp - 0x1060]
call fcn.00ac0e50
jmp 0xab92b9
push 0xffffffffffffffff
call fcn.00ac0e50
push 0x38
mov dword [ebp - 0x13a8], ebx
pop ebx
mov edx, dword [ebp - 0x13a8]
mov eax, edi
mov ecx, ebx
call 0xae1600
movzx eax, al
push eax
lea esi, [ebp - 0x1060]
call fcn.00ac0e50
sub ebx, 8
jns 0xab9296
lea eax, [ebp - 0x13b4]
push eax
push 4
pop ebx
lea eax, [ebp - 0x1060]
call fcn.00ac0b70
xor ebx, ebx
test edi, edi
je 0xab930c
cmp dword [ebp - 0x10f4], 0x10
mov eax, dword [ebp - 0x1108]
jae 0xab92e9
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.00ac0e50
inc ebx
cmp ebx, edi
jb 0xab92d4
cmp dword [ebp - 0x104c], 0x10
mov eax, dword [ebp - 0x1060]
jae 0xab9321
lea eax, [ebp - 0x1060]
xor esi, esi
push esi
push dword [ebp - 0x1050]
push eax
push dword [ebp - 0x13a0]
call dword [0xae1290]
cmp eax, 0xffffffff
jne 0xab937f
push dword [ebp - 0x13a0]
call dword [0xae128c]
call dword [0xae127c]
mov esi, dword [ebp - 0x1394]
push 0xae783a
call fcn.00ac0b15
push 1
xor ebx, ebx
lea esi, [ebp - 0x1060]
call fcn.00ac105e
push 1
lea esi, [ebp - 0x1108]
call fcn.00ac105e
jmp 0xab914f
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 [0xae1280]
cmp eax, esi
jle 0xab95d7
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.00ac15d0
jmp 0xab959d
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 0xab945e
test edx, edx
jne 0xab945e
cmp dword [ebp - 0x1398], 4
jb 0xab95c8
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 0xab94b4
cmp eax, 0x7f
jne 0xab94b4
test edx, edx
jne 0xab94b4
cmp dword [ebp - 0x1398], 0xa
jb 0xab95c8
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 0xab9480
mov cl, byte [ebp - 0x1399]
mov dword [ebp - 0x13a4], 0
test cl, cl
je 0xab94dc
lea eax, [esi + 4]
cmp dword [ebp - 0x1398], eax
jb 0xab95c8
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 0xab95c8
ja 0xab9504
cmp dword [ebp - 0x1398], edx
jb 0xab95c8
mov eax, dword [ebp - 0x13ac]
lea edi, [esi + ebx]
add eax, edi
push eax
push edi
lea esi, [ebp - 0x101c]
call fcn.00ac14a7
cmp byte [ebp - 0x1399], 0
mov esi, dword [ebp - 0x101c]
je 0xab9555
mov ecx, dword [ebp - 0x1018]
xor eax, eax
sub ecx, esi
mov dword [ebp - 0x1398], ecx
je 0xab9555
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 0xab953d
push dword [ebp - 0x13b8]
lea eax, [ebp - 0x10ec]
push dword [ebp - 0x1018]
push esi
call fcn.00ac1724
mov eax, dword [ebp - 0x13ac]
add eax, edi
push eax
push ebx
lea eax, [ebp - 0x13bc]
push eax
lea edi, [ebp - 0x108c]
call fcn.00ac0ce9
cmp byte [ebp - 0x13ad], 0
lea edx, [ebp - 0x101c]
jne 0xab95bc
call fcn.00ac10d8
mov ebx, dword [ebp - 0x108c]
mov eax, dword [ebp - 0x1088]
sub eax, ebx
mov dword [ebp - 0x1398], eax
cmp eax, 2
jae 0xab93fb
jmp 0xab95c8
mov byte [ebp - 0x1390], 1
call fcn.00ac10d8
xor esi, esi
cmp byte [ebp - 0x1390], 0
je 0xab93af
mov dword [ebp - 0x1114], esi
push 0xffffffffffffff88
lea esi, [ebp - 0x1124]
mov dword [ebp - 0x1110], 0xf
mov byte [ebp - 0x1124], 0
call fcn.00ac0e50
xor edi, edi
push edi
call fcn.00ac0e50
cmp dword [ebp - 0x1110], 0x10
mov eax, dword [ebp - 0x1124]
jae 0xab9614
mov eax, esi
push edi
push dword [ebp - 0x1114]
push eax
push dword [ebp - 0x13a0]
call dword [0xae1290]
push dword [ebp - 0x13a0]
call dword [0xae128c]
call dword [0xae127c]
cmp dword [ebp - 0x10d8], 0x10
mov ecx, dword [ebp - 0x10ec]
mov eax, ecx
jae 0xab9651
lea eax, [ebp - 0x10ec]
add eax, dword [ebp - 0x10dc]
cmp dword [ebp - 0x10d8], 0x10
jae 0xab9666
lea ecx, [ebp - 0x10ec]
push eax
push ecx
lea esi, [ebp - 0x1188]
call fcn.00ac14de
mov eax, dword [ebp - 0x1394]
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], 0xf
mov edi, esi
mov byte [eax], 0
call fcn.00ac0d51
push 1
xor ebx, ebx
call fcn.00ac105e
push 1
lea esi, [ebp - 0x1124]
call fcn.00ac105e
push 1
lea esi, [ebp - 0x10ec]
call fcn.00ac105e
lea edx, [ebp - 0x108c]
call fcn.00ac10d8
jmp 0xab935e
push 0xae782a
mov esi, dword [ebp - 0x1394]
call fcn.00ac0b15
push 1
xor ebx, ebx
lea esi, [ebp - 0x10b4]
call fcn.00ac105e
push 1
lea esi, [ebp - 0x107c]
call fcn.00ac105e
push 1
lea esi, [ebp - 0x1044]
call fcn.00ac105e
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x1394]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00acf48c
leave
ret