Function at 0x100a9c9f
Capabilities:
Encode data using base64
Inspect section memory permissions

Disassembly:
push ecx
push ecx
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push edi
push eax
push dword [esp + 0x28]
mov byte [esp + 0x1b], 0
call fcn.100acfe7
xor dl, dl
mov byte [esi + 0x18], al
mov byte [esp + 0x28], dl
pop ecx
pop ecx
test al, al
je 0x100aa066
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
movzx eax, dl
lea ecx, [esi + 0x20]
imul edi, eax, 0x68
add ecx, edi
mov byte [ecx], dl
movzx eax, byte [ebp]
shr eax, 6
mov dword [edi + esi + 0x28], eax
mov al, byte [ebp + 1]
and al, 0xf
mov byte [edi + esi + 0x2c], al
movzx eax, byte [ebp]
and eax, 0x3f
sub eax, 1
je 0x100a9d45
sub eax, 1
je 0x100a9d3a
sub eax, 1
jne 0x100a9d5a
and dword [edi + esi + 0x84], 0
push 8
pop eax
mov dword [edi + esi + 0x24], 4
mov word [edi + esi + 0x34], ax
mov dword [edi + esi + 0x80], 1
mov word [edi + esi + 0x78], 0
jmp 0x100a9d5a
push ebp
push ecx
push esi
push ebx
call fcn.100a97e7
jmp 0x100a9d4e
push ebp
push ecx
push esi
push ebx
call fcn.100a990b
mov ebp, dword [esp + 0x24]
lea ecx, [esi + 0x20]
add esp, 0x10
add ecx, edi
cmp dword [edi + esi + 0x24], 0
jne 0x100a9ffb
movzx eax, byte [ebp + 9]
and eax, 0x3f
mov dword [edi + esi + 0x30], eax
movzx eax, byte [ebp]
and eax, 0x3f
lea edx, [eax - 4]
cmp edx, 0x12
ja case.default.0x100a9d83
jmp dword [edx*4 + 0x100aa1b7]
xor ebx, ebx
inc ebx
jmp 0x100a9df6
push 2
jmp 0x100a9df5
push 4
jmp 0x100a9df5
mov al, byte [esi + 0x16]
cmp al, 0x10
je case.0x100a9d83.5
xor ebx, ebx
cmp al, 0x20
setne bl
add ebx, 3
jmp 0x100a9df6
mov al, byte [esi + 0x16]
cmp al, 0x10
jne 0x100a9d9e
push 3
jmp 0x100a9df5
xor ebx, ebx
cmp byte [esi + 0x16], 0x10
setne bl
add ebx, 2
jmp 0x100a9df6
mov al, byte [esi + 0x17]
jmp 0x100a9d9a
push 5
jmp 0x100a9df5
push 6
jmp 0x100a9df5
push 7
jmp 0x100a9df5
push 8
pop ecx
mov ebx, ecx
jmp 0x100a9df9
push 9
jmp 0x100a9df5
push 0xa
jmp 0x100a9df5
push 0x12
jmp 0x100a9df5
push 0xd
jmp 0x100a9df5
push 0xf
jmp 0x100a9df5
push 0x10
jmp 0x100a9df5
push 0x11
pop ebx
push 8
pop ecx
movzx eax, byte [ebp + 9]
and eax, 0x3f
push ebx
sub eax, 1
je 0x100a9e2d
sub eax, 1
je 0x100a9e29
sub eax, 1
je 0x100a9e25
sub eax, 1
je 0x100a9e21
sub eax, 1
je 0x100a9e1e
push 9
jmp 0x100a9e2f
push ecx
jmp 0x100a9e2f
push 3
jmp 0x100a9e2f
push 1
jmp 0x100a9e2f
push 4
jmp 0x100a9e2f
push 2
push esi
push dword [esp + 0x28]
call fcn.100a87ba
movzx eax, al
push eax
lea eax, [esi + 0x20]
push ebx
add eax, edi
push eax
push esi
call fcn.100a9c4c
add esp, 0x20
test eax, eax
js 0x100aa1ae
mov ebp, dword [esp + 0x14]
test byte [ebp + 0xc], 1
je 0x100a9ffb
or byte [edi + esi + 0x40], 1
jmp 0x100a9ffb
add eax, 0xffffffe9
cmp eax, 9
ja case.0x100a9e79.27
jmp dword [eax*4 + 0x100aa203]
push 0
push ecx
push esi
push ebx
call fcn.100a9a0b
add esp, 0x10
test eax, eax
js 0x100aa1ae
jmp 0x100a9f39
push 7
jmp 0x100a9e82
push 8
pop eax
push eax
jmp 0x100a9e82
push 9
jmp 0x100a9e82
mov dword [edi + esi + 0x24], 3
mov eax, dword [esi + 0x5b8]
mov dword [edi + esi + 0x74], eax
mov ax, word [esi + 0x5d0]
mov word [edi + esi + 0x70], ax
jmp case.0x100a9e79.27
push 0
push ecx
push esi
push ebx
mov byte [edi + esi + 0x2c], 0
call fcn.100a9a0b
add esp, 0x10
test eax, eax
js 0x100aa1ae
mov dword [edi + esi + 0x48], 2
jmp 0x100a9f39
mov dword [edi + esi + 0x24], 2
mov dword [edi + esi + 0x48], 1
mov byte [edi + esi + 0x60], 1
mov eax, dword [esi + 0x5a0]
mov ecx, dword [esi + 0x5a4]
mov dword [edi + esi + 0x68], eax
mov dword [edi + esi + 0x6c], ecx
jmp case.0x100a9e79.27
push 0
push ecx
push esi
push ebx
mov byte [edi + esi + 0x2c], 0
call fcn.100a9a0b
add esp, 0x10
test eax, eax
js 0x100aa1ae
mov dword [edi + esi + 0x48], 3
mov ebp, dword [esp + 0x14]
cmp dword [edi + esi + 0x24], 0
je 0x100a9f7f
cmp dword [esi + 0xc], 4
je 0x100a9f54
cmp dword [esi + 0xc], 5
jne 0x100a9ffb
cmp byte [esi + 0x5a8], 8
jne 0x100a9ffb
push dword [edi + esi + 0x6c]
movzx eax, byte [ebx + 0x34]
push dword [edi + esi + 0x68]
cdq
push edx
push eax
call fcn.100b7640
mov dword [edi + esi + 0x68], eax
mov dword [edi + esi + 0x6c], edx
jmp 0x100a9ffb
movzx eax, byte [ebp]
and eax, 0x3f
sub eax, 0x1b
je 0x100a9f90
sub eax, 1
jne 0x100a9ffb
mov dword [edi + esi + 0x24], 4
movzx eax, byte [ebx + 0x19]
movzx ebx, byte [esp + 0x13]
mov ax, word [ebp + eax*2 + 2]
shl ax, 3
mov word [edi + esi + 0x34], ax
lea eax, [ebx + 0x3d]
imul ecx, eax, 0x18
mov al, byte [ebp + 9]
and al, 0x3f
cmp al, 5
jne 0x100a9fc9
mov al, byte [ecx + esi]
and al, 0xf
movzx eax, al
cdq
jmp 0x100a9fd0
mov eax, dword [ecx + esi]
mov edx, dword [ecx + esi + 4]
imul ecx, ebx, 0x18
inc byte [esp + 0x13]
mov dword [edi + esi + 0x80], eax
mov dword [edi + esi + 0x84], edx
mov al, byte [ecx + esi + 0x5b0]
mov byte [edi + esi + 0x78], al
mov al, byte [ecx + esi + 0x5b1]
mov byte [edi + esi + 0x79], al
push 2
pop ebx
cmp dword [edi + esi + 0x24], ebx
jne 0x100aa029
mov dl, byte [ebp + 0xc]
lea ecx, [esi + 0x430]
test bl, dl
jne 0x100aa0f9
mov eax, dword [ecx]
and eax, 0x10000000
or eax, 0
je 0x100aa093
mov dword [edi + esi + 0x4c], 0xc7
mov cl, byte [esp + 0x20]
mov ebx, dword [esp + 0x1c]
movzx eax, cl
imul eax, eax, 0x68
push ebp
add eax, 0x20
add eax, esi
push eax
push esi
push ebx
call fcn.100abe32
mov ebp, dword [esp + 0x24]
add esp, 0x10
mov dl, byte [esp + 0x20]
add ebp, 0xd
inc dl
mov dword [esp + 0x14], ebp
mov byte [esp + 0x20], dl
cmp dl, byte [esi + 0x18]
jb 0x100a9cd7
cmp dword [esi + 0x4b0], 2
jne 0x100aa1a9
movzx eax, byte [esi + 0x2c]
dec eax
sub eax, 1
je 0x100aa19d
sub eax, 1
jne 0x100aa1a9
mov byte [esi + 0x2c], 9
jmp 0x100aa1a9
test bl, dl
jne 0x100aa0f9
mov eax, dword [ecx]
and eax, 0x20000000
or eax, 0
jne 0x100aa186
mov eax, dword [ecx]
and eax, 0x40000000
or eax, 0
je 0x100aa0ca
mov cl, byte [esp + 0x20]
movzx eax, cl
imul eax, eax, 0x68
mov dword [eax + esi + 0x4c], 0xc9
jmp 0x100aa02d
test bl, dl
jne 0x100aa0f9
mov eax, dword [ecx]
and eax, 0x80000000
or eax, 0
je 0x100aa0f1
mov cl, byte [esp + 0x20]
movzx eax, cl
imul eax, eax, 0x68
mov dword [eax + esi + 0x4c], 0xc6
jmp 0x100aa02d
lea edi, [esi + 0x430]
jmp 0x100aa0ff
mov edi, ecx
test bl, dl
jne 0x100aa144
mov ecx, dword [edi + 4]
xor eax, eax
and ecx, 1
or eax, ecx
je 0x100aa122
mov cl, byte [esp + 0x20]
movzx eax, cl
imul eax, eax, 0x68
mov dword [eax + esi + 0x4c], 0xca
jmp 0x100aa02d
mov ecx, dword [edi + 4]
xor eax, eax
and ecx, ebx
or eax, ecx
je 0x100aa144
mov cl, byte [esp + 0x20]
movzx eax, cl
imul eax, eax, 0x68
mov dword [eax + esi + 0x4c], 0xcb
jmp 0x100aa02d
mov cl, byte [esp + 0x20]
movzx eax, cl
imul eax, eax, 0x68
cmp dword [eax + esi + 0x4c], 0
jne 0x100aa02d
movzx eax, cl
imul eax, eax, 0x68
mov eax, dword [eax + esi + 0x50]
cmp eax, 0x39
je 0x100aa18a
cmp eax, 0x3a
je 0x100aa18a
cmp eax, 0x29
je 0x100aa18a
cmp eax, 0x2a
je 0x100aa18a
cmp eax, 0x19
je 0x100aa18a
cmp eax, 0x1a
je 0x100aa18a
jmp 0x100aa0b7
mov cl, byte [esp + 0x20]
movzx eax, cl
imul eax, eax, 0x68
mov dword [eax + esi + 0x4c], 0xc8
jmp 0x100aa02d
cmp dword [esi + 0x24], 2
setne al
add al, 8
mov byte [esi + 0x2c], al
mov eax, 0x100000
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
ret