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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xc0]
sub rsp, 0x1c0
mov rax, qword [0x140070040]
xor rax, rsp
mov qword [rbp + 0xb0], rax
mov r13, rcx
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
movdqa xmm1, xmmword [0x140066700]
movdqu xmmword [rbp - 0x30], xmm1
mov eax, dword [str.iAmmo]
mov dword [rbp - 0x40], eax
movzx eax, byte [0x140065cf4]
mov byte [rbp - 0x3c], al
mov byte [rbp - 0x3b], 0
lea rdx, [rbp - 0x40]
call fcn.140017390
mov rsi, rax
cmp byte [rax + 0x5c], 0
je 0x1400223bf
mov bl, 1
jmp 0x140022e16
xor r12d, r12d
mov qword [rax + 0x10], r12
mov dword [rax], r12d
mov dword [rax + 4], 2
mov word [rax + 0x60], 0x100
mov byte [rax + 0x5d], 1
mov byte [rax + 0x5f], 1
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], r12
movups xmmword [rbp + 0x20], xmm0
mov ecx, 0xc0
call fcn.14002f634
mov r14, rax
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x30], 0xb9
mov eax, 0xbf
mov qword [rsp + 0x70], rax
mov qword [rbp + 0x38], rax
lea rax, [0x140000000]
lea rcx, [rax + 0x65d00]
movups xmm0, xmmword [rcx]
movups xmmword [r14], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [r14 + 0x10], xmm1
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [r14 + 0x20], xmm0
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [r14 + 0x30], xmm1
movups xmm0, xmmword [rcx + 0x40]
movups xmmword [r14 + 0x40], xmm0
movups xmm1, xmmword [rcx + 0x50]
movups xmmword [r14 + 0x50], xmm1
movups xmm0, xmmword [rcx + 0x60]
movups xmmword [r14 + 0x60], xmm0
lea rdx, [r14 + 0x80]
movups xmm0, xmmword [rcx + 0x70]
movups xmmword [rdx - 0x10], xmm0
movups xmm1, xmmword [rcx + 0x80]
movups xmmword [rdx], xmm1
movups xmm0, xmmword [rcx + 0x90]
movups xmmword [rdx + 0x10], xmm0
movups xmm1, xmmword [rcx + 0xa0]
movups xmmword [rdx + 0x20], xmm1
mov rax, qword [rcx + 0xb0]
mov qword [rdx + 0x30], rax
movzx eax, byte [rcx + 0xb8]
mov byte [rdx + 0x38], al
mov byte [r14 + 0xb9], r12b
xorps xmm0, xmm0
movups xmmword [rbp], xmm0
lea ecx, [r12 + 0x20]
call fcn.14002f634
mov rdi, rax
mov qword [rbp], rax
mov qword [rbp + 0x10], SafeArrayUnaccessData
mov qword [rbp + 0x18], 0x1f
movups xmm0, xmmword [str.83_BB_s1_00_00_FF]
movups xmmword [rax], xmm0
movzx eax, byte [0x140065dd0]
mov byte [rdi + 0x10], al
mov byte [rdi + 0x11], r12b
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
lea ecx, [r12 + 0x40]
call fcn.14002f634
mov rbx, rax
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x10], 0x32
mov eax, 0x3f
mov qword [rsp + 0x68], rax
mov r15d, eax
mov qword [rbp - 8], rax
movups xmm0, xmmword [str.83_BB_s1_00_00_FF___75__B8_01_00_00_00_84_C0_75]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [0x140065de8]
movups xmmword [rbx + 0x10], xmm1
movups xmm0, xmmword [0x140065df8]
movups xmmword [rbx + 0x20], xmm0
movzx eax, word [0x140065e08]
mov word [rbx + 0x30], ax
mov byte [rbx + 0x32], r12b
mov dword [rsi], r12d
cmp dword [rsi + 4], 2
je 0x14002255a
mov dword [rsi + 4], r12d
lea r12, [rsi + 0x68]
lea rax, [rbp - 0x20]
cmp r12, rax
je 0x140022580
mov r8d, 0x32
mov rdx, rbx
mov rcx, r12
call fcn.140001fa0
mov r15, qword [rbp - 8]
mov rbx, qword [rbp - 0x20]
lea rax, [rsi + 0x88]
lea rcx, [rbp]
cmp rax, rcx
je 0x1400225a5
mov r8d, 0x11
mov rdx, rdi
mov rcx, rax
call fcn.140001fa0
mov rdi, qword [rbp]
lea rax, [rsi + 0xa8]
lea rcx, [rbp + 0x20]
cmp rax, rcx
je 0x1400225ca
mov r8d, 0xb9
mov rdx, r14
mov rcx, rax
call fcn.140001fa0
mov r14, qword [rbp + 0x20]
cmp r15, 0xf
jbe 0x140022602
lea rdx, [r15 + 1]
mov rax, rbx
cmp rdx, 0x1000
jb 0x1400225f9
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022e86
mov rcx, rbx
call fcn.14002f600
nop
mov rdx, qword [rbp + 0x18]
cmp rdx, 0xf
jbe 0x14002263d
inc rdx
mov rax, rdi
cmp rdx, 0x1000
jb 0x140022634
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022e8c
mov rcx, rdi
call fcn.14002f600
nop
mov rdx, qword [rbp + 0x38]
cmp rdx, 0xf
jbe 0x140022677
inc rdx
mov rax, r14
cmp rdx, 0x1000
jb 0x14002266f
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022ea4
mov rcx, r14
call fcn.14002f600
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], 2
mov qword [rbp - 0x68], reloc.OLEAUT32.dll_SafeArrayDestroy
mov eax, 0x3173
mov word [rbp - 0x80], ax
mov byte [rbp - 0x7e], 0
mov dword [rsp + 0x28], 0x7fffffff
mov dword [rsp + 0x20], 0x80000000
mov r9d, 2
lea rdx, [rbp - 0x80]
lea rcx, [rbp + 0x80]
call fcn.1400208c0
nop
mov r8, rax
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.140026f70
nop
mov rdx, qword [rbp + 0x98]
cmp rdx, 0xf
jbe 0x140022713
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002270e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022e92
call fcn.14002f600
cmp qword [rsi + 0x10], 0x10000
ja 0x140022c0b
mov rdx, qword [rsi + 0x20]
mov rax, qword [rsi + 0x28]
lea rcx, [r13 + 0xf0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rdx
mov eax, dword [rsi + 0x38]
mov dword [rsp + 0x28], eax
mov byte [rsp + 0x20], 0
lea r9, [rsp + 0x50]
mov r8, r12
mov rdx, rsi
call fcn.14002ac60
mov qword [rsi + 0x10], rax
cmp rax, 0x10000
jae 0x140022c0b
mov r8d, SafeArrayDestroy
lea rdx, str.FF_FF_FF_FF
mov rcx, r12
call fcn.140002100
mov r14, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
cmp r14, rdi
je 0x1400227ea
mov rbx, r14
xor r15d, r15d
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x1400227ca
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x1400227c5
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140022ea4
mov rcx, r8
call fcn.14002f600
mov qword [rbx + 0x10], r15
mov qword [rbx + 0x18], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbx], r15b
add rbx, 0x30
cmp rbx, rdi
jne 0x140022790
mov rdi, r14
mov qword [rsp + 0x58], r14
xorps xmm0, xmm0
movups xmmword [rbp + 0x60], xmm0
mov ecx, 0xc0
call fcn.14002f634
mov r15, rax
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x70], 0xb6
mov eax, 0xbf
mov qword [rbp + 0x78], rax
lea rcx, [0x140000000]
lea rcx, [rcx + 0x65e10]
movups xmm0, xmmword [rcx]
movups xmmword [r15], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [r15 + 0x10], xmm1
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [r15 + 0x20], xmm0
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [r15 + 0x30], xmm1
movups xmm0, xmmword [rcx + 0x40]
movups xmmword [r15 + 0x40], xmm0
movups xmm1, xmmword [rcx + 0x50]
movups xmmword [r15 + 0x50], xmm1
movups xmm0, xmmword [rcx + 0x60]
movups xmmword [r15 + 0x60], xmm0
lea rdx, [r15 + 0x80]
movups xmm1, xmmword [rcx + 0x70]
movups xmmword [rdx - 0x10], xmm1
movups xmm0, xmmword [rcx + 0x80]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rcx + 0x90]
movups xmmword [rdx + 0x10], xmm1
movups xmm0, xmmword [rcx + 0xa0]
movups xmmword [rdx + 0x20], xmm0
mov eax, dword [rcx + 0xb0]
mov dword [rdx + 0x30], eax
movzx eax, word [rcx + 0xb4]
mov word [rdx + 0x34], ax
mov byte [r15 + 0xb6], 0
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], SafeArrayDestroy
mov qword [rbp - 0x48], reloc.OLEAUT32.dll_SafeArrayDestroy
movsd xmm0, qword [str.8B_83_s1_00_00]
movsd qword [rbp - 0x60], xmm0
mov eax, dword [0x140065ed0]
mov dword [rbp - 0x58], eax
movzx eax, word [0x140065ed4]
mov word [rbp - 0x54], ax
mov byte [rbp - 0x52], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x40], xmm0
mov ecx, 0x40
call fcn.14002f634
mov rbx, rax
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x50], 0x3d
mov eax, 0x3f
mov qword [rbp + 0x58], rax
movups xmm0, xmmword [str.8B_83_s1_00_00_83_F8_FF_74__83_BB___00_00_00_7F__85_C0_7F]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [0x140065ee8]
movups xmmword [rbx + 0x10], xmm1
movups xmm0, xmmword [0x140065ef8]
movups xmmword [rbx + 0x20], xmm0
movsd xmm0, qword [0x140065f08]
movsd qword [rbx + 0x30], xmm0
mov eax, dword [0x140065f10]
mov dword [rbx + 0x38], eax
movzx eax, byte [0x140065f14]
mov byte [rbx + 0x3c], al
mov byte [rbx + 0x3d], 0
xor eax, eax
mov dword [rsi], eax
cmp dword [rsi + 4], 2
je 0x14002295f
mov dword [rsi + 4], eax
lea rax, [rbp + 0x40]
cmp r12, rax
je 0x140022986
mov r8d, 0x3d
mov rdx, rbx
mov rcx, r12
call fcn.140001fa0
mov rax, qword [rbp + 0x58]
mov qword [rsp + 0x68], rax
mov rbx, qword [rbp + 0x40]
lea rax, [rbp - 0x60]
lea rcx, [rsi + 0x88]
cmp rcx, rax
je 0x1400229a5
mov r8d, SafeArrayDestroy
lea rdx, [rbp - 0x60]
call fcn.140001fa0
lea rax, [rbp + 0x60]
lea rcx, [rsi + 0xa8]
cmp rcx, rax
je 0x1400229d0
mov r8d, 0xb6
mov rdx, r15
call fcn.140001fa0
mov rax, qword [rbp + 0x78]
mov qword [rsp + 0x70], rax
mov r15, qword [rbp + 0x60]
mov rax, qword [rsp + 0x68]
cmp rax, 0xf
jbe 0x140022a0d
lea rdx, [rax + 1]
mov rax, rbx
cmp rdx, 0x1000
jb 0x140022a04
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022e98
mov rcx, rbx
call fcn.14002f600
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0xf
jbe 0x140022a49
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022a43
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022e9e
call fcn.14002f600
nop
mov rax, qword [rsp + 0x70]
cmp rax, 0xf
jbe 0x140022a85
lea rdx, [rax + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x140022a7d
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022ea4
mov rcx, r15
call fcn.14002f600
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], 2
mov qword [rbp - 0x68], reloc.OLEAUT32.dll_SafeArrayDestroy
mov eax, 0x3173
mov word [rbp - 0x80], ax
mov byte [rbp - 0x7e], 0
mov dword [rsp + 0x28], 0x7fffffff
mov dword [rsp + 0x20], 0x80000000
mov r9d, 2
lea rdx, [rbp - 0x80]
lea rcx, [rbp + 0x80]
call fcn.1400208c0
mov r8, rax
cmp rdi, qword [rsp + 0x60]
je 0x140022b2f
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
xor eax, eax
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], rax
movups xmm0, xmmword [r8]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [r8 + 0x10]
movups xmmword [rdi + 0x10], xmm1
mov qword [r8 + 0x10], rax
mov qword [r8 + 0x18], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [r8], al
mov eax, dword [r8 + 0x20]
mov dword [rdi + 0x20], eax
mov eax, dword [r8 + 0x24]
mov dword [rdi + 0x24], eax
mov eax, dword [r8 + 0x28]
mov dword [rdi + 0x28], eax
mov eax, dword [r8 + 0x2c]
mov dword [rdi + 0x2c], eax
add rdi, 0x30
mov qword [rsp + 0x58], rdi
jmp 0x140022b46
mov rdx, rdi
lea rcx, [rsp + 0x50]
call fcn.140026f70
mov rdi, qword [rsp + 0x58]
mov r14, qword [rsp + 0x50]
mov rdx, qword [rbp + 0x98]
cmp rdx, 0xf
jbe 0x140022b87
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022b82
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022eaa
call fcn.14002f600
cmp qword [rsi + 0x10], 0x10000
ja 0x140022c15
mov rcx, qword [rsi + 0x20]
mov rax, qword [rsi + 0x28]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rcx
mov eax, dword [rsi + 0x38]
mov dword [rsp + 0x28], eax
mov byte [rsp + 0x20], 1
lea r9, [rsp + 0x50]
mov r8, r12
mov rdx, rsi
lea rbx, [r13 + 0xf0]
mov rcx, rbx
call fcn.14002ac60
mov qword [rsi + 0x10], rax
cmp rax, 0x10000
jae 0x140022bff
mov r8d, SafeArrayDestroy
lea rdx, str.FF_FF_FF_FF
mov rcx, r12
call fcn.140002100
xor bl, bl
mov rdi, qword [rsp + 0x58]
mov r14, qword [rsp + 0x50]
jmp 0x140022dad
mov rdi, qword [rsp + 0x58]
mov r14, qword [rsp + 0x50]
jmp 0x140022c1c
mov r14, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
lea rbx, [r13 + 0xf0]
mov r9b, 1
mov rdx, 0xffffffffffffffff
mov r8d, 0x800
mov rcx, rbx
call fcn.14002a730
mov qword [rsi + 0x18], rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
movdqa xmm1, xmmword [0x1400666e0]
movdqu xmmword [rbp - 0x70], xmm1
mov word [rbp - 0x80], 0x32
lea rbx, [rax + 0x200]
lea rdx, [rbp - 0x80]
mov rcx, r13
call fcn.140026d20
mov qword [rax + 0x10], rbx
mov r15d, 1
mov dword [rax + 0x3c], r15d
mov ecx, dword [rax + 0x4c]
mov edx, r15d
cmp ecx, 0x7fffffff
je 0x140022c8a
cmp ecx, edx
jge 0x140022c8a
mov dword [rax + 0x3c], ecx
mov edx, ecx
mov r8d, dword [rax + 0x50]
cmp r8d, 0x80000000
je 0x140022c9f
cmp edx, ecx
jge 0x140022c9f
mov dword [rax + 0x3c], r8d
xor r12d, r12d
mov dword [rax + 0x40], r12d
mov byte [rax + 0x60], r15b
mov byte [rax + 0x5e], r12b
mov dword [rax], 2
mov rdx, qword [rbp - 0x68]
cmp rdx, 0xf
jbe 0x140022cef
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022cea
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022eb0
call fcn.14002f600
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
movdqa xmm1, xmmword [0x1400666e0]
movdqu xmmword [rbp - 0x70], xmm1
mov word [rbp - 0x80], 0x33
mov rbx, qword [rsi + 0x18]
add rbx, 0x204
lea rdx, [rbp - 0x80]
mov rcx, r13
call fcn.140026d20
mov qword [rax + 0x10], rbx
mov dword [rax + 0x3c], r15d
mov ecx, dword [rax + 0x4c]
cmp ecx, 0x7fffffff
je 0x140022d3e
cmp ecx, 1
jge 0x140022d3e
mov dword [rax + 0x3c], ecx
mov r15d, ecx
mov edx, dword [rax + 0x50]
cmp edx, 0x80000000
je 0x140022d51
cmp r15d, ecx
jge 0x140022d51
mov dword [rax + 0x3c], edx
mov dword [rax + 0x40], r12d
mov byte [rax + 0x60], 1
mov byte [rax + 0x5e], 0
mov dword [rax], 2
mov rdx, qword [rbp - 0x68]
cmp rdx, 0xf
jbe 0x140022d9e
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022d99
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022eb6
call fcn.14002f600
lea rdx, [rbp - 0x40]
mov rcx, r13
call fcn.140023490
movzx ebx, al
test r14, r14
je 0x140022e16
mov rdx, rdi
mov rcx, r14
call fcn.140026ee0
mov rcx, qword [rsp + 0x60]
sub rcx, r14
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*2]
shl rdx, 4
mov rax, r14
cmp rdx, 0x1000
jb 0x140022e0d
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022ebc
mov rcx, r14
call fcn.14002f600
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 0xf
jbe 0x140022e4d
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022e48
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022e80
call fcn.14002f600
movzx eax, bl
mov rcx, qword [rbp + 0xb0]
xor rcx, rsp
call fcn.14002f5e0
lea r11, [rsp + 0x1c0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.14003642c
nop
call fcn.14003642c
nop
call fcn.14003642c
nop
call fcn.14003642c
nop
call fcn.14003642c
nop
call fcn.14003642c
nop
call fcn.14003642c
int3
call fcn.14003642c
int3
call fcn.14003642c
int3
call fcn.14003642c
nop
call fcn.14003642c
int3