Function at 0x10020d35
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.1002407d
xor dl, dl
mov byte [esi + 0x18], al
mov byte [esp + 0x28], dl
pop ecx
pop ecx
test al, al
je 0x100210fc
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 0x10020ddb
sub eax, 1
je 0x10020dd0
sub eax, 1
jne 0x10020df0
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 0x10020df0
push ebp
push ecx
push esi
push ebx
call fcn.1002087d
jmp 0x10020de4
push ebp
push ecx
push esi
push ebx
call fcn.100209a1
mov ebp, dword [esp + 0x24]
lea ecx, [esi + 0x20]
add esp, 0x10
add ecx, edi
cmp dword [edi + esi + 0x24], 0
jne 0x10021091
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.0x10020e19
jmp dword [edx*4 + 0x1002124d]
xor ebx, ebx
inc ebx
jmp 0x10020e8c
push 2
jmp 0x10020e8b
push 4
jmp 0x10020e8b
mov al, byte [esi + 0x16]
cmp al, 0x10
je case.0x10020e19.5
xor ebx, ebx
cmp al, 0x20
setne bl
add ebx, 3
jmp 0x10020e8c
mov al, byte [esi + 0x16]
cmp al, 0x10
jne 0x10020e34
push 3
jmp 0x10020e8b
xor ebx, ebx
cmp byte [esi + 0x16], 0x10
setne bl
add ebx, 2
jmp 0x10020e8c
mov al, byte [esi + 0x17]
jmp 0x10020e30
push 5
jmp 0x10020e8b
push 6
jmp 0x10020e8b
push 7
jmp 0x10020e8b
push 8
pop ecx
mov ebx, ecx
jmp 0x10020e8f
push 9
jmp 0x10020e8b
push 0xa
jmp 0x10020e8b
push 0x12
jmp 0x10020e8b
push 0xd
jmp 0x10020e8b
push 0xf
jmp 0x10020e8b
push 0x10
jmp 0x10020e8b
push 0x11
pop ebx
push 8
pop ecx
movzx eax, byte [ebp + 9]
and eax, 0x3f
push ebx
sub eax, 1
je 0x10020ec3
sub eax, 1
je 0x10020ebf
sub eax, 1
je 0x10020ebb
sub eax, 1
je 0x10020eb7
sub eax, 1
je 0x10020eb4
push 9
jmp 0x10020ec5
push ecx
jmp 0x10020ec5
push 3
jmp 0x10020ec5
push 1
jmp 0x10020ec5
push 4
jmp 0x10020ec5
push 2
push esi
push dword [esp + 0x28]
call fcn.1001f850
movzx eax, al
push eax
lea eax, [esi + 0x20]
push ebx
add eax, edi
push eax
push esi
call fcn.10020ce2
add esp, 0x20
test eax, eax
js 0x10021244
mov ebp, dword [esp + 0x14]
test byte [ebp + 0xc], 1
je 0x10021091
or byte [edi + esi + 0x40], 1
jmp 0x10021091
add eax, 0xffffffe9
cmp eax, 9
ja case.0x10020f0f.27
jmp dword [eax*4 + 0x10021299]
push 0
push ecx
push esi
push ebx
call fcn.10020aa1
add esp, 0x10
test eax, eax
js 0x10021244
jmp 0x10020fcf
push 7
jmp 0x10020f18
push 8
pop eax
push eax
jmp 0x10020f18
push 9
jmp 0x10020f18
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.0x10020f0f.27
push 0
push ecx
push esi
push ebx
mov byte [edi + esi + 0x2c], 0
call fcn.10020aa1
add esp, 0x10
test eax, eax
js 0x10021244
mov dword [edi + esi + 0x48], 2
jmp 0x10020fcf
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.0x10020f0f.27
push 0
push ecx
push esi
push ebx
mov byte [edi + esi + 0x2c], 0
call fcn.10020aa1
add esp, 0x10
test eax, eax
js 0x10021244
mov dword [edi + esi + 0x48], 3
mov ebp, dword [esp + 0x14]
cmp dword [edi + esi + 0x24], 0
je 0x10021015
cmp dword [esi + 0xc], 4
je 0x10020fea
cmp dword [esi + 0xc], 5
jne 0x10021091
cmp byte [esi + 0x5a8], 8
jne 0x10021091
push dword [edi + esi + 0x6c]
movzx eax, byte [ebx + 0x34]
push dword [edi + esi + 0x68]
cdq
push edx
push eax
call fcn.1002f0f0
mov dword [edi + esi + 0x68], eax
mov dword [edi + esi + 0x6c], edx
jmp 0x10021091
movzx eax, byte [ebp]
and eax, 0x3f
sub eax, 0x1b
je 0x10021026
sub eax, 1
jne 0x10021091
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 0x1002105f
mov al, byte [ecx + esi]
and al, 0xf
movzx eax, al
cdq
jmp 0x10021066
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 0x100210bf
mov dl, byte [ebp + 0xc]
lea ecx, [esi + 0x430]
test bl, dl
jne 0x1002118f
mov eax, dword [ecx]
and eax, 0x10000000
or eax, 0
je 0x10021129
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.10022ec8
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 0x10020d6d
cmp dword [esi + 0x4b0], 2
jne 0x1002123f
movzx eax, byte [esi + 0x2c]
dec eax
sub eax, 1
je 0x10021233
sub eax, 1
jne 0x1002123f
mov byte [esi + 0x2c], 9
jmp 0x1002123f
test bl, dl
jne 0x1002118f
mov eax, dword [ecx]
and eax, 0x20000000
or eax, 0
jne 0x1002121c
mov eax, dword [ecx]
and eax, 0x40000000
or eax, 0
je 0x10021160
mov cl, byte [esp + 0x20]
movzx eax, cl
imul eax, eax, 0x68
mov dword [eax + esi + 0x4c], 0xc9
jmp 0x100210c3
test bl, dl
jne 0x1002118f
mov eax, dword [ecx]
and eax, 0x80000000
or eax, 0
je 0x10021187
mov cl, byte [esp + 0x20]
movzx eax, cl
imul eax, eax, 0x68
mov dword [eax + esi + 0x4c], 0xc6
jmp 0x100210c3
lea edi, [esi + 0x430]
jmp 0x10021195
mov edi, ecx
test bl, dl
jne 0x100211da
mov ecx, dword [edi + 4]
xor eax, eax
and ecx, 1
or eax, ecx
je 0x100211b8
mov cl, byte [esp + 0x20]
movzx eax, cl
imul eax, eax, 0x68
mov dword [eax + esi + 0x4c], 0xca
jmp 0x100210c3
mov ecx, dword [edi + 4]
xor eax, eax
and ecx, ebx
or eax, ecx
je 0x100211da
mov cl, byte [esp + 0x20]
movzx eax, cl
imul eax, eax, 0x68
mov dword [eax + esi + 0x4c], 0xcb
jmp 0x100210c3
mov cl, byte [esp + 0x20]
movzx eax, cl
imul eax, eax, 0x68
cmp dword [eax + esi + 0x4c], 0
jne 0x100210c3
movzx eax, cl
imul eax, eax, 0x68
mov eax, dword [eax + esi + 0x50]
cmp eax, 0x39
je 0x10021220
cmp eax, 0x3a
je 0x10021220
cmp eax, 0x29
je 0x10021220
cmp eax, 0x2a
je 0x10021220
cmp eax, 0x19
je 0x10021220
cmp eax, 0x1a
je 0x10021220
jmp 0x1002114d
mov cl, byte [esp + 0x20]
movzx eax, cl
imul eax, eax, 0x68
mov dword [eax + esi + 0x4c], 0xc8
jmp 0x100210c3
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