Function at 0x1802d9930
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x50
lea rcx, [0x180504fd9]
call fcn.1801b5d60
cmp qword [rsp + 0x78], 0
jne 0x1802d9975
mov r8d, 0x28
lea rdx, [0x1804ac890]
lea rcx, [0x1804ac8f8]
call fcn.1802e2b80
xor eax, eax
test eax, eax
jne 0x1802d9954
mov eax, dword [rsp + 0x88]
and eax, 8
test eax, eax
je 0x1802d9993
mov dword [rsp + 0x40], 0x48
jmp 0x1802d999b
mov dword [rsp + 0x40], 0x40
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x68]
add eax, 2
xor edx, edx
mov ecx, 3
div ecx
shl eax, 2
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x88]
and eax, 6
cmp eax, 2
jne 0x1802d99e1
xor edx, edx
mov eax, dword [rsp + 0x24]
div dword [rsp + 0x2c]
mov ecx, dword [rsp + 0x24]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x24], eax
jmp 0x1802d9a05
mov eax, dword [rsp + 0x88]
and eax, 6
cmp eax, 6
jne 0x1802d9a05
xor edx, edx
mov eax, dword [rsp + 0x24]
div dword [rsp + 0x2c]
mov ecx, dword [rsp + 0x24]
lea eax, [rcx + rax*2]
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x24]
inc eax
mov rcx, qword [rsp + 0x78]
cmp dword [rcx], eax
jae 0x1802d9a2b
mov eax, dword [rsp + 0x24]
inc eax
mov rcx, qword [rsp + 0x78]
mov dword [rcx], eax
mov eax, 6
jmp 0x1802d9dec
cmp qword [rsp + 0x60], 0
jne 0x1802d9a4c
mov r8d, 0x38
lea rdx, [0x1804ac910]
lea rcx, [0x1804ac978]
call fcn.1802e2b80
xor eax, eax
test eax, eax
jne 0x1802d9a2b
cmp qword [rsp + 0x70], 0
jne 0x1802d9a73
mov r8d, 0x39
lea rdx, str.F:GamesCoD_Devproject_bo4_shield_developmentdepslibtomcrypt_srcmisc_base64_base64_encode.c
lea rcx, [0x1804ac9f8]
call fcn.1802e2b80
xor eax, eax
test eax, eax
jne 0x1802d9a52
mov rax, qword [rsp + 0x70]
cmp qword [rsp + 0x60], rax
jne 0x1802d9a8f
mov eax, reloc.WS2_32.dll_recv
jmp 0x1802d9dec
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x30], rax
xor edx, edx
mov eax, dword [rsp + 0x68]
mov ecx, 3
div ecx
imul eax, eax, 3
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 0
jmp 0x1802d9ac2
mov eax, dword [rsp + 0x20]
add eax, 3
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x28]
cmp dword [rsp + 0x20], eax
jae 0x1802d9c61
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax]
sar eax, 2
and eax, 0x3f
cdqe
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x80]
movzx eax, byte [rdx + rax]
mov byte [rcx], al
mov rax, qword [rsp + 0x30]
inc rax
mov qword [rsp + 0x30], rax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax]
and eax, 3
shl eax, 4
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x60]
movzx ecx, byte [rdx + rcx]
sar ecx, 4
add eax, ecx
and eax, 0x3f
cdqe
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x80]
movzx eax, byte [rdx + rax]
mov byte [rcx], al
mov rax, qword [rsp + 0x30]
inc rax
mov qword [rsp + 0x30], rax
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax]
and eax, 0xf
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x60]
movzx ecx, byte [rdx + rcx]
sar ecx, 6
lea eax, [rcx + rax*4]
and eax, 0x3f
cdqe
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x80]
movzx eax, byte [rdx + rax]
mov byte [rcx], al
mov rax, qword [rsp + 0x30]
inc rax
mov qword [rsp + 0x30], rax
mov eax, 1
imul rax, rax, 2
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax]
and eax, 0x3f
cdqe
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x80]
movzx eax, byte [rdx + rax]
mov byte [rcx], al
mov rax, qword [rsp + 0x30]
inc rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x60]
add rax, 3
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x30]
sub rcx, rax
mov rax, rcx
mov ecx, dword [rsp + 0x2c]
cqo
idiv rcx
mov rax, rdx
test rax, rax
jne 0x1802d9c5c
mov eax, dword [rsp + 0x88]
and eax, 4
test eax, eax
je 0x1802d9c39
mov rax, qword [rsp + 0x30]
mov byte [rax], 0xd
mov rax, qword [rsp + 0x30]
inc rax
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x88]
and eax, 2
test eax, eax
je 0x1802d9c5c
mov rax, qword [rsp + 0x30]
mov byte [rax], 0xa
mov rax, qword [rsp + 0x30]
inc rax
mov qword [rsp + 0x30], rax
jmp 0x1802d9ab7
mov eax, dword [rsp + 0x68]
cmp dword [rsp + 0x20], eax
jae 0x1802d9dcb
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x20]
inc eax
cmp eax, dword [rsp + 0x68]
jae 0x1802d9ca9
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0x44], eax
jmp 0x1802d9cb1
mov dword [rsp + 0x44], 0
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x38]
shr eax, 2
and eax, 0x3f
mov eax, eax
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x80]
movzx eax, byte [rdx + rax]
mov byte [rcx], al
mov rax, qword [rsp + 0x30]
inc rax
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x38]
and eax, 3
shl eax, 4
mov ecx, dword [rsp + 0x3c]
shr ecx, 4
add eax, ecx
and eax, 0x3f
mov eax, eax
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x80]
movzx eax, byte [rdx + rax]
mov byte [rcx], al
mov rax, qword [rsp + 0x30]
inc rax
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x88]
and eax, 1
test eax, eax
je 0x1802d9d90
mov eax, dword [rsp + 0x20]
inc eax
cmp eax, dword [rsp + 0x68]
jae 0x1802d9d58
mov eax, dword [rsp + 0x3c]
and eax, 0xf
shl eax, 2
and eax, 0x3f
mov eax, eax
mov rcx, qword [rsp + 0x80]
movsx eax, byte [rcx + rax]
mov dword [rsp + 0x48], eax
jmp 0x1802d9d60
mov dword [rsp + 0x48], 0x3d
mov rax, qword [rsp + 0x30]
movzx ecx, byte [rsp + 0x48]
mov byte [rax], cl
mov rax, qword [rsp + 0x30]
inc rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov byte [rax], 0x3d
mov rax, qword [rsp + 0x30]
inc rax
mov qword [rsp + 0x30], rax
jmp 0x1802d9dcb
mov eax, dword [rsp + 0x20]
inc eax
cmp eax, dword [rsp + 0x68]
jae 0x1802d9dcb
mov eax, dword [rsp + 0x3c]
and eax, 0xf
shl eax, 2
and eax, 0x3f
mov eax, eax
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x80]
movzx eax, byte [rdx + rax]
mov byte [rcx], al
mov rax, qword [rsp + 0x30]
inc rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov byte [rax], 0
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x30]
sub rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x78]
mov dword [rcx], eax
xor eax, eax
add rsp, 0x50
pop rdi
ret