Function at 0x180041d40
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x118]
sub rsp, 0x218
mov r8d, dword [rbp + 0x180]
mov r15, rdx
mov ebx, dword [rsp + 0x60]
mov r10, r9
mov r14d, dword [rbp + 0x180]
mov edx, r8d
mov edi, dword [rbp + 0x180]
mov r9, rcx
mov esi, dword [rbp + 0x180]
lea r11d, [r8 - 0xf]
mov dword [rsp + 0x58], edx
lea rcx, [0x180000000]
mov dword [rbp + 0x170], r11d
cmp r8d, r11d
jbe case.0x18004230d.64
movsxd r15, dword [rbp + 0x180]
lea r13d, [r8 - 0x32]
mov r12, qword [rbp + 0x170]
nop word [rax + rax]
cmp r13d, 0x3e
ja case.default.0x180041df4
movzx eax, byte [rcx + r13 + 0x42910]
mov ecx, dword [rcx + rax*4 + 0x428d8]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
cmp dword [r10], 2
jb 0x1800423d7
movzx eax, byte [r9]
and al, 0x1f
cmp al, 0x13
jne 0x1800423d7
mov r14d, 1
jmp case.0x180041df4.13
cmp qword [rbp + 0x168], 0
jne case.0x180041df4.13
xor eax, eax
lea r9, [rsp + 0x50]
mov r8d, 0x8c
mov dword [rsp + 0x50], eax
lea rdx, [0x18008f048]
lea rcx, str._weakReference
call fcn.1800064b0
mov edx, dword [rsp + 0x58]
mov r11d, dword [rbp + 0x170]
jmp case.0x180041df4.13
call qword [0x1800a1f10]
mov edx, dword [rsp + 0x58]
mov r11d, dword [rbp + 0x170]
mov byte [rsp + 0x60], al
mov ebx, dword [rsp + 0x60]
mov byte [0x1800a1f31], al
jmp case.0x180041df4.13
xor eax, eax
lea r9, [rsp + 0x50]
mov r8d, 0x8c
mov dword [rsp + 0x50], eax
lea rdx, [0x18008f048]
lea rcx, str.key___NULL
call fcn.1800064b0
xor edx, edx
cmp dword [rdx], 1
jne 0x18004230f
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
cmp ecx, 0x10
je 0x180041efb
cmp ecx, 0x8b0
je 0x180041ed3
cmp ecx, 0x1150
jne 0x180041efe
imul rax, r15, 0x38
mov dword [rax + r12 + 0x14], edx
jmp 0x180041efe
imul rax, r15, 0x38
lea rdx, [rbp + 0x90]
lea r12, [rbp - 0x50]
mov qword [rbp + rax - 0x48], rdx
xor edx, edx
mov dword [rbp + rax - 0x50], 7
mov dword [rbp + rax - 0x40], 0x20
jmp 0x180041efe
mov r15, rdx
add ecx, 0x8a0
cmp ecx, 0x19e0
jbe 0x180041eb3
mov edx, dword [rsp + 0x58]
mov r11d, dword [rbp + 0x170]
jmp case.0x180041df4.13
mov rbx, qword [rbp + 0x188]
test rbx, rbx
jne 0x180041f4c
xor eax, eax
lea r9, [rsp + 0x50]
mov r8d, 0x8c
mov dword [rsp + 0x50], eax
lea rdx, [0x18008f048]
lea rcx, str.c___NULL
call fcn.1800064b0
mov rax, qword [rbp + 0x168]
test rax, rax
jne 0x180041f81
lea r9, [rsp + 0x50]
mov dword [rsp + 0x50], eax
mov r8d, 0x8c
lea rdx, [0x18008f048]
lea rcx, str.d___NULL
call fcn.1800064b0
mov rax, qword [rbp + 0x168]
mov r9, qword [rbp + 0x178]
mov r8, rbx
mov rcx, qword [rbp + 0x160]
mov edx, 0xa5
mov qword [rsp + 0x20], rax
call fcn.18002b000
xor r9d, r9d
mov dword [rsp + 0x50], eax
lea r8, [rsp + 0x50]
xor ecx, ecx
lea edx, [r9 + 0x7c]
call fcn.180009930
mov edx, dword [rsp + 0x58]
mov rbx, rax
mov r11d, dword [rbp + 0x170]
mov dword [rsp + 0x60], eax
jmp case.0x180041df4.13
cmp byte [0x1800a1f30], 0
jne case.0x180041df4.13
mov byte [rsp + 0x60], 0
mov eax, dword [rsp + 0x60]
jmp 0x180042686
test r9, r9
jne case.0x180041df4.13
xor eax, eax
lea r9, [rsp + 0x50]
mov r8d, 0x8c
mov dword [rsp + 0x50], eax
lea rdx, [0x18008f048]
lea rcx, str.Hk_TANNED
call fcn.1800064b0
mov edx, dword [rsp + 0x58]
mov r11d, dword [rbp + 0x170]
jmp case.0x180041df4.13
test r9, r9
jne 0x180042050
xor eax, eax
lea r9, [rsp + 0x50]
mov r8d, 0x8c
mov dword [rsp + 0x50], eax
lea rdx, [0x18008f048]
lea rcx, str.a___NULL
call fcn.1800064b0
mov rcx, qword [rbp + 0x160]
xor r9d, r9d
xor edx, edx
mov r8d, 0x11d
call fcn.18002a240
mov edx, dword [rsp + 0x58]
mov ebx, eax
mov r11d, dword [rbp + 0x170]
mov dword [rsp + 0x60], eax
jmp case.0x180041df4.13
test r9, r9
jne 0x1800420b1
xor eax, eax
lea r9, [rsp + 0x50]
mov r8d, 0x8c
mov dword [rsp + 0x50], eax
lea rdx, [0x18008f048]
lea rcx, str.in___NULL
call fcn.1800064b0
mov edx, dword [rsp + 0x58]
mov r11d, dword [rbp + 0x170]
cmp qword [rbp + 0x188], 0
jne case.0x180041df4.13
xor eax, eax
lea r9, [rsp + 0x50]
mov r8d, 0x8c
mov dword [rsp + 0x50], eax
lea rdx, [0x18008f048]
lea rcx, str.tt___NULL
call fcn.1800064b0
mov edx, dword [rsp + 0x58]
mov r11d, dword [rbp + 0x170]
jmp case.0x180041df4.13
cmp qword [rbp + 0x188], 0
jne 0x18004212c
xor eax, eax
lea r9, [rsp + 0x50]
mov r8d, 0x8c
mov dword [rsp + 0x50], eax
lea rdx, [0x18008f048]
lea rcx, str.out___NULL
call fcn.1800064b0
mov edx, dword [rsp + 0x58]
mov r11d, dword [rbp + 0x170]
cmp qword [rbp + 0x168], 0
jne case.0x180041df4.13
xor eax, eax
lea r9, [rsp + 0x50]
mov r8d, 0x8c
mov dword [rsp + 0x50], eax
lea rdx, [0x18008f048]
lea rcx, str.Norfolk_Adalar
call fcn.1800064b0
mov edx, dword [rsp + 0x58]
mov r11d, dword [rbp + 0x170]
jmp case.0x180041df4.13
test r9, r9
jne 0x1800421a9
xor eax, eax
lea r9, [rsp + 0x50]
mov r8d, 0x8c
mov dword [rsp + 0x50], eax
lea rdx, [0x18008f048]
lea rcx, str.a___NULL
call fcn.1800064b0
mov edx, dword [rsp + 0x58]
mov r10, qword [rbp + 0x178]
mov r11d, dword [rbp + 0x170]
test r10, r10
jne case.0x180041df4.13
xor eax, eax
lea r9, [rsp + 0x50]
mov r8d, 0x8c
mov dword [rsp + 0x50], eax
lea rdx, [0x18008f048]
lea rcx, str.b___NULL
call fcn.1800064b0
mov edx, dword [rsp + 0x58]
mov r11d, dword [rbp + 0x170]
jmp case.0x180041df4.13
mov eax, r14d
movzx ecx, byte [rax + r9]
test cl, cl
jns 0x180042264
mov edx, 0x96
mov eax, edx
sub eax, 0x96
je 0x180042249
cmp eax, 1
jne 0x180042254
lea eax, [rdi - 1]
cmp eax, 2
ja 0x1800423d7
lea eax, [rdi + r14]
cmp eax, dword [r10]
ja 0x1800423d7
xor eax, eax
mov esi, eax
inc r14d
nop word [rax + rax]
movzx ecx, byte [r14 + r9]
inc r14d
shl esi, 8
or esi, ecx
add edi, 0xffffffff
jne 0x180042230
mov edi, 0xffffffff
jmp 0x180042254
mov eax, r14d
movzx edi, byte [rax + r9]
and edi, 0x7f
inc edx
cmp edx, 0x98
jb 0x1800421f7
mov edx, dword [rsp + 0x58]
jmp 0x18004226c
mov esi, ecx
and esi, 0x7f
inc r14d
mov rax, qword [rbp + 0x168]
cmp esi, dword [rax]
ja 0x180042319
lea eax, [rsi + r14]
cmp eax, dword [r10]
ja 0x1800423d7
lea rcx, [0x180000000]
mov r9, qword [rbp + 0x160]
dec edx
mov r10, qword [rbp + 0x178]
dec r13d
mov dword [rsp + 0x58], edx
cmp edx, r11d
ja 0x180041dd0
mov r8d, dword [rbp + 0x180]
mov r15, qword [rbp + 0x168]
cmp r8d, r11d
jbe case.0x18004230d.64
movsxd r8, dword [rbp + 0x180]
movsxd rdx, dword [rbp + 0x180]
mov r13, qword [rbp - 0x78]
mov r12, qword [rbp + 0x170]
mov eax, dword [rbp + 0x180]
mov qword [rbp - 0x70], r8
mov qword [rbp - 0x68], rdx
nop dword [rax]
add eax, 0xffffffd6
cmp eax, 0x19
ja case.0x18004230d.53
mov ecx, dword [rcx + rax*4 + 0x42950]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov eax, reloc.OLEAUT32.dll_SafeArrayDestroy
jmp 0x180042686
mov dword [rax], esi
mov eax, 6
jmp 0x180042686
mov eax, dword [r10]
lea r8, [rbp - 0x50]
mov dword [rsp + 0x58], eax
lea rcx, [rsp + 0x58]
lea rax, [rsp + 0x50]
mov dword [rsp + 0x50], 1
mov qword [rsp + 0x28], rax
mov edx, 0x55
mov qword [rsp + 0x20], r9
lea r9, [rsp + 0x60]
mov dword [rsp + 0x60], 1
call fcn.180044080
mov dword [rsp + 0x58], eax
test eax, eax
jne 0x180042686
mov ecx, dword [rbp - 0x40]
lea rax, [rsp + 0x50]
xor r15d, r15d
mov dword [rsp + 0x50], ecx
mov qword [rsp + 0x40], r15
xor r8d, r8d
mov qword [rsp + 0x38], r15
xor edx, edx
mov qword [rsp + 0x30], rax
xor ecx, ecx
lea rax, [rbp + 0x90]
mov qword [rsp + 0x28], rax
lea r9d, [r15 + 0x2e]
mov qword [rsp + 0x20], r15
call fcn.180002540
lea r9, [rsp + 0x50]
mov dword [rsp + 0x60], eax
xor r8d, r8d
mov dword [rsp + 0x50], eax
xor edx, edx
mov dword [rsp + 0x20], 0xc5
xor ecx, ecx
call fcn.18000efe0
test eax, eax
je 0x180042875
mov eax, 7
jmp 0x180042686
lea r9, [rsp + 0x68]
mov dword [rsp + 0x68], 0x100
lea r8, [rbp + 0x60]
mov dword [rsp + 0x20], VarCyFromDate
xor edx, edx
mov rcx, r13
call fcn.18001ae20
mov dword [rsp + 0x58], eax
cmp eax, 0
je 0x180042875
xor r8d, r8d
lea rdx, [rbp + 0x60]
mov ecx, 0x115
call fcn.180008250
mov r11d, dword [rbp + 0x170]
mov eax, 0x2d
jmp 0x180042882
mov dword [r15], edi
jmp case.0x18004230d.53
mov r15, qword [rbp - 0x80]
lea rax, [rsp + 0x70]
xor ecx, ecx
mov qword [rsp + 0x70], 0x100
mov qword [rsp + 0x40], rcx
xor r8d, r8d
mov qword [rsp + 0x38], rcx
xor edx, edx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r15
lea r9d, [rcx + 0x12]
mov qword [rsp + 0x20], rcx
call fcn.180002540
xor ecx, ecx
mov qword [rsp + 0x70], 0x100
mov qword [rsp + 0x40], rcx
lea rax, [rsp + 0x70]
mov qword [rsp + 0x38], rcx
xor r8d, r8d
mov qword [rsp + 0x30], rax
xor edx, edx
mov qword [rsp + 0x28], r13
lea r9d, [rcx + 0x12]
mov qword [rsp + 0x20], rcx
call fcn.180002540
xor ecx, ecx
mov qword [rsp + 0x70], 0x80
mov qword [rsp + 0x40], rcx
lea rax, [rsp + 0x70]
mov qword [rsp + 0x38], rcx
xor r8d, r8d
mov qword [rsp + 0x30], rax
xor edx, edx
mov qword [rsp + 0x28], r12
lea r9d, [rcx + 0x12]
mov qword [rsp + 0x20], rcx
call fcn.180002540
mov rcx, r15
call fcn.180065650
jmp 0x180042875
mov eax, dword [rbp + 0x30]
cmp dword [r15], eax
jae 0x18004250e
mov dword [r15], eax
mov eax, 0x2d
mov dword [rsp + 0x58], 6
jmp 0x180042882
xor eax, eax
mov dword [rsp + 0x68], eax
cmp dword [rbp + 0x30], eax
jbe 0x18004253d
mov rdx, qword [rbp + 0x188]
mov ecx, eax
movzx eax, byte [rcx + r12]
xor al, byte [rcx + r13]
mov byte [rcx + rdx], al
mov eax, dword [rsp + 0x68]
inc eax
mov dword [rsp + 0x68], eax
cmp eax, dword [rbp + 0x30]
jb 0x180042520
mov dword [r15], eax
jmp case.0x18004230d.53
xor r8d, r8d
lea rdx, [rbp + 0x60]
mov ecx, 0x115
call fcn.180008250
mov eax, dword [rsp + 0x68]
lea r9, [rsp + 0x58]
mov dword [rsp + 0x48], 0xeb
lea rcx, [rsp + 0x78]
mov dword [rsp + 0x58], eax
xor r8d, r8d
mov eax, dword [rsp + 0x60]
mov rdx, r13
mov dword [rsp + 0x50], eax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x40], rax
xor eax, eax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r13
mov dword [rsp + 0x78], 0x80
call fcn.18004eed0
mov dword [rsp + 0x58], eax
cmp eax, 0
jne 0x18004283b
mov eax, dword [rsp + 0x78]
mov r11d, dword [rbp + 0x170]
cmp dword [rbp + 0x30], eax
jbe case.0x18004230d.53
mov dword [rsp + 0x58], 7
mov eax, 0x2d
jmp 0x180042882
mov rcx, r13
call fcn.180065650
jmp 0x180042875
xor eax, eax
mov ebx, eax
jmp case.0x18004230d.53
xor eax, eax
mov edi, eax
test esi, esi
je case.0x18004230d.53
mov r15, qword [rbp + 0x188]
nop word [rax + rax]
mov eax, r14d
xor edx, edx
movzx ecx, byte [rax + r9]
xor r9d, r9d
mov dword [rsp + 0x50], ecx
lea rcx, [rsp + 0x50]
lea r8d, [r9 + 0x30]
call fcn.1800064b0
inc r14d
cmp eax, 0xffffffff
je 0x1800428bc
mov r9, qword [rbp + 0x160]
inc edi
mov byte [r15], al
inc r15
cmp edi, esi
jb 0x180042610
jmp 0x180042875
mov rdx, qword [rbp - 0x80]
test rdx, rdx
je 0x180042666
test r13, r13
je 0x180042666
test r12, r12
jne 0x1800426dd
mov r15d, 0xa2
nop dword [rax]
mov eax, r15d
sub eax, 0xa2
je 0x1800426a1
sub eax, 0x1a
je 0x18004269a
cmp eax, 0x1a
jne 0x1800426cc
mov eax, ebx
add rsp, 0x218
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ebx, SafeArrayGetDim
jmp 0x1800426cc
test rdx, rdx
je 0x1800426ae
mov rcx, rdx
call fcn.180065650
test r13, r13
je 0x1800426bb
mov rcx, r13
call fcn.180065650
test r12, r12
je 0x1800426c8
mov rcx, r12
call fcn.180065650
mov rdx, qword [rbp - 0x80]
add r15d, 0x1a
cmp r15d, 0xf0
jb 0x180042670
mov r8, qword [rbp - 0x70]
mov r13, qword [rbp - 0x60]
mov ecx, 0x80
cmp ecx, 0x80
je 0x180042724
cmp ecx, 0x10c
je 0x180042712
cmp ecx, 0x198
jne 0x18004272a
imul rax, r8, 0x38
mov qword [rax + r13 + 8], rdx
mov qword [rax + r13 + 0x10], 0x100
jmp 0x18004272a
imul rax, r8, 0x38
lea r13, [rbp - 0x50]
mov dword [rbp + rax - 0x50], 5
jmp 0x18004272a
mov r8d, 1
add ecx, 0x8c
cmp ecx, 0x224
jb 0x1800426e6
mov qword [rbp - 0x60], r13
mov r13, qword [rbp - 0x78]
mov qword [rbp - 0x70], r8
jmp 0x180042875
xor eax, eax
mov dword [rsp + 0x58], eax
mov eax, 0x2d
jmp 0x180042882
mov r13, qword [rbp - 0x58]
mov ecx, 0x106
xor r9d, r9d
cmp ecx, 0x106
je 0x180042797
cmp ecx, 0x18c
je 0x180042788
cmp ecx, 0x212
jne 0x1800427ab
imul rax, rdx, 0x38
mov dword [rax + r13 + 0x14], r9d
jmp 0x1800427ab
imul rax, rdx, 0x38
mov dword [rax + r13 + 0x10], 0x80
jmp 0x1800427ab
mov edx, 2
mov dword [rbp + 0x20], 5
lea r13, [rbp - 0x50]
mov qword [rbp + 0x28], r12
add ecx, 0x86
cmp ecx, 0x298
jb 0x180042765
mov eax, dword [r10]
lea r8, [rbp - 0x50]
mov r9, qword [rbp + 0x160]
lea rcx, [rsp + 0x70]
mov dword [rsp + 0x70], eax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r9
lea r9, [rsp + 0x58]
mov qword [rbp - 0x68], rdx
mov edx, 0x55
mov qword [rbp - 0x58], r13
mov r13, qword [rbp - 0x78]
mov dword [rsp + 0x50], 1
mov dword [rsp + 0x58], 3
call fcn.180044080
mov dword [rsp + 0x58], eax
cmp eax, 0
jne 0x18004283b
mov eax, dword [rbp - 8]
lea r9, [rsp + 0x70]
mov rcx, qword [rbp - 0x10]
lea rdx, [rbp + 0x60]
mov r8d, 0x10b
mov dword [rsp + 0x70], eax
call fcn.18002a240
mov dword [rsp + 0x58], eax
cmp eax, 0
je 0x180042875
mov r11d, dword [rbp + 0x170]
mov eax, 0x2d
jmp 0x180042882
mov ecx, 0x100
call fcn.18006717c
mov ecx, 0x100
mov qword [rbp - 0x80], rax
call fcn.18006717c
mov ecx, 0x80
mov qword [rbp - 0x78], rax
mov r13, rax
call fcn.18006717c
mov r12, rax
mov r11d, dword [rbp + 0x170]
mov eax, dword [rbp + 0x180]
dec eax
mov dword [rbp + 0x180], eax
cmp eax, r11d
jbe case.0x18004230d.64
mov rdx, qword [rbp - 0x68]
lea rcx, [0x180000000]
mov r8, qword [rbp - 0x70]
mov r9, qword [rbp + 0x160]
mov r10, qword [rbp + 0x178]
mov r15, qword [rbp + 0x168]
jmp 0x1800422f0
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
jmp 0x180042686
mov rcx, r12
call fcn.180065650
mov eax, dword [rsp + 0x58]
jmp 0x180042686