Function at 0x180042e30
Capabilities:
Encode data using base64

Disassembly:
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 - 0x1f]
sub rsp, 0xc8
mov eax, dword [rcx + 0x60]
mov rbx, rdx
mov rsi, qword [rcx]
mov rdi, rcx
mov dword [rbp - 0x25], eax
mov r12d, 1
xor eax, eax
mov dword [rbp + 0x77], r12d
mov r14d, eax
mov qword [rbp - 0x21], rax
mov r15d, eax
mov dword [rbp + 0x7f], eax
mov dword [rbp - 0x35], eax
mov r13d, eax
mov dword [rbp - 0x61], eax
mov rcx, rsi
mov eax, dword [rsi + 0x34]
mov edx, eax
shl edx, 8
or edx, 0x34
mov dword [rbp - 0x59], eax
mov dword [rbp - 0x29], eax
call fcn.1800406f0
mov ecx, dword [rbp - 0x59]
mov dword [rbx], ecx
mov dword [rbx + 8], 0xc
mov qword [rbx + 0xc], 0xffffffffffffffff
mov edx, dword [rsi + 0x34]
mov dword [rbp - 0x39], eax
inc edx
movzx eax, byte [rsi + 0x5a]
cmp edx, eax
jbe 0x180042ecf
cmp edx, 0xfa
jae 0x180043bb7
mov byte [rsi + 0x5a], dl
inc ecx
mov dword [rsi + 0x34], edx
cmp dword [rdi + 0x34], 0x7b
mov dword [rbp - 0x59], ecx
mov rcx, rdi
jne 0x180043bc6
call fcn.1800364d0
mov eax, dword [rdi + 0x34]
cmp eax, 0x7d
je 0x1800439fd
nop word [rax + rax]
xor r15d, r15d
mov dword [rbp - 0x5d], r15d
cmp eax, 0x5b
jne 0x180043023
mov rcx, rdi
call fcn.1800364d0
xor r8d, r8d
lea rdx, [rbp - 0x79]
mov rcx, rdi
call fcn.1800415c0
mov eax, dword [rbp - 0x69]
lea rdx, [rbp - 0x79]
mov rbx, qword [rdi]
mov rcx, rbx
cmp dword [rbp - 0x6d], eax
je 0x180042fb1
call fcn.180041de0
cmp dword [rbp - 0x71], 0xc
jne 0x180042f64
mov eax, dword [rbp - 0x69]
cmp dword [rbp - 0x6d], eax
je 0x180042fb6
mov r8d, dword [rbp - 0x79]
cmp r8d, dword [rbx + 0x38]
jb 0x180042f64
lea rdx, [rbp - 0x79]
mov rcx, rbx
call fcn.180043d60
jmp 0x180042fb6
lea rdx, [rbp - 0x79]
mov rcx, rbx
call fcn.180041de0
cmp dword [rbp - 0x71], 0xc
jne 0x180042f81
mov eax, dword [rbx + 0x38]
cmp dword [rbp - 0x79], eax
jb 0x180042f81
dec dword [rbx + 0x34]
mov r8d, dword [rbx + 0x34]
movzx eax, byte [rbx + 0x5a]
lea ecx, [r8 + 1]
cmp ecx, eax
jbe 0x180042fa0
cmp ecx, 0xfa
jae 0x180043bd1
mov byte [rbx + 0x5a], cl
mov dword [rbx + 0x34], ecx
lea rdx, [rbp - 0x79]
mov rcx, rbx
call fcn.180043d60
jmp 0x180042fb6
call fcn.180041de0
cmp dword [rdi + 0x34], 0x5d
mov rcx, rdi
jne 0x180043be0
call fcn.1800364d0
mov eax, dword [rbp - 0x71]
mov rbx, qword [rbp + 0x6f]
cmp eax, 4
jle 0x180042fe9
lea r8, [rbp - 0x79]
mov rdx, rbx
mov rcx, rsi
call fcn.180042850
mov eax, dword [rbp - 0x71]
cmp eax, 4
jne 0x180043001
movabs rax, 0x7fffffffffffffff
test qword [rbp - 0x79], rax
jne 0x180043001
mov dword [rbp + 0x7f], r12d
jmp 0x180043008
inc r13d
mov dword [rbp - 0x61], r13d
cmp dword [rdi + 0x34], 0x3d
jne 0x180043bf9
mov rcx, rdi
call fcn.1800364d0
mov r15d, dword [rbp + 0x77]
jmp 0x1800430c8
cmp eax, 0x11f
je 0x180043031
cmp eax, 0x10a
jne 0x180043098
mov rcx, rdi
call fcn.1800364b0
cmp eax, 0x3d
jne 0x180043098
mov eax, dword [rdi + 0x34]
mov dword [rbp - 0x71], 3
mov dword [rbp - 0x79], r15d
mov qword [rbp - 0x6d], 0xffffffffffffffff
cmp eax, 0x11f
je 0x180043066
cmp eax, 0x10a
jne 0x180043beb
mov ebx, dword [rdi + 0x10]
mov rcx, rdi
call fcn.1800364d0
cmp dword [rdi + 0x34], 0x3d
mov qword [rbp - 0x79], rbx
jne 0x180043bf9
mov rcx, rdi
call fcn.1800364d0
mov rbx, qword [rbp + 0x6f]
inc r13d
mov r15d, dword [rbp + 0x77]
mov dword [rbp - 0x61], r13d
jmp 0x1800430c8
mov r15d, dword [rbp + 0x77]
mov dword [rbp - 0x71], 4
mov qword [rbp - 0x6d], 0xffffffffffffffff
mov dword [rbp - 0x5d], r12d
movd xmm0, r15d
inc r15d
cvtdq2pd xmm0, xmm0
mov dword [rbp + 0x77], r15d
mov dword [rbp + 0x7f], r12d
movsd qword [rbp - 0x79], xmm0
xor r8d, r8d
lea rdx, [rbp - 0x51]
mov rcx, rdi
call fcn.1800415c0
mov ecx, dword [rbp - 0x71]
cmp ecx, 4
jg 0x180043250
test ecx, ecx
je 0x180043250
cmp ecx, 3
je 0x180043106
cmp dword [rbp - 0x49], 4
jg 0x180043250
mov eax, dword [rbp - 0x41]
cmp dword [rbp - 0x45], eax
jne 0x180043250
test r14, r14
jne 0x180043197
test r13d, r13d
je 0x18004312c
cmp r13d, 1
jne 0x18004311f
mov r8d, r12d
jmp 0x18004312f
lea eax, [r13 - 1]
bsr r8d, eax
inc r8d
jmp 0x18004312f
xor r8d, r8d
mov rcx, qword [rsi + 0x10]
xor edx, edx
cmp dword [rbp + 0x7f], edx
cmovne edx, r15d
call fcn.180054a60
mov rdx, qword [rsi]
lea r8, [rbp - 0x19]
mov rcx, qword [rsi + 0x10]
mov r14, rax
mov qword [rbp - 0x21], rax
mov dword [rbp - 0x19], eax
mov dword [rbp - 0x15], 0xfffffff4
call fcn.1800551f0
mov rcx, rax
cmp dword [rax + 4], 0
jne 0x18004316f
mov edx, dword [rax]
jmp 0x18004317e
mov eax, dword [rsi + 0x40]
mov qword [rcx], rax
mov edx, dword [rsi + 0x40]
lea eax, [rdx + 1]
mov dword [rsi + 0x40], eax
mov ecx, dword [rbp - 0x39]
mov rax, qword [rsi + 0x48]
shl edx, 8
or edx, dword [rbp - 0x29]
shl edx, 8
or edx, 0x35
mov dword [rax + rcx*8], edx
mov ecx, dword [rbp - 0x71]
xor r15d, r15d
mov dword [rbp - 0x5d], r15d
cmp ecx, 2
jg 0x1800431aa
not ecx
mov dword [rbp - 0x2d], ecx
jmp 0x1800431c6
cmp ecx, 3
jne 0x1800431be
mov eax, dword [rbp - 0x79]
mov dword [rbp - 0x31], eax
mov dword [rbp - 0x2d], 0xfffffffb
jmp 0x1800431c6
mov rax, qword [rbp - 0x79]
mov qword [rbp - 0x31], rax
mov rcx, qword [rsi + 0x10]
lea r8, [rbp - 0x31]
mov rdx, r14
call fcn.1800551f0
mov r8, rax
movzx eax, byte [r14 + 4]
test al, 4
je 0x1800431fa
mov rcx, qword [rsi + 0x10]
and al, 0xfb
mov edx, dword [rcx + 8]
mov byte [r14 + 4], al
mov ecx, dword [rdx + 0x3c]
mov dword [r14 + 0xc], ecx
mov dword [rdx + 0x3c], r14d
mov ecx, dword [rbp - 0x49]
cmp ecx, 4
jg 0x18004323e
mov eax, dword [rbp - 0x41]
cmp dword [rbp - 0x45], eax
jne 0x18004323e
cmp ecx, 2
jg 0x18004321a
not ecx
mov dword [r8 + 4], ecx
jmp 0x1800439cb
cmp ecx, 3
jne 0x180043232
mov eax, dword [rbp - 0x51]
mov dword [r8], eax
mov dword [r8 + 4], 0xfffffffb
jmp 0x1800439cb
mov rax, qword [rbp - 0x51]
mov qword [r8], rax
jmp 0x1800439cb
mov dword [r8], r14d
mov dword [r8 + 4], 0xfffffff4
mov ecx, dword [rbp - 0x71]
mov dword [rbp - 0x35], r12d
cmp dword [rbp - 0x49], 0xd
je 0x1800432d1
lea rdx, [rbp - 0x51]
mov rcx, rsi
call fcn.180041de0
cmp dword [rbp - 0x49], 0xc
jne 0x18004327e
mov eax, dword [rbp - 0x41]
cmp dword [rbp - 0x45], eax
je 0x1800432c9
mov rax, qword [rbp - 0x51]
cmp eax, dword [rsi + 0x38]
jb 0x18004327e
mov r8d, eax
jmp 0x1800432bd
lea rdx, [rbp - 0x51]
mov rcx, rsi
call fcn.180041de0
cmp dword [rbp - 0x49], 0xc
jne 0x18004329b
mov eax, dword [rsi + 0x38]
cmp dword [rbp - 0x51], eax
jb 0x18004329b
dec dword [rsi + 0x34]
mov r8d, dword [rsi + 0x34]
movzx eax, byte [rsi + 0x5a]
lea ecx, [r8 + 1]
cmp ecx, eax
jbe 0x1800432ba
cmp ecx, 0xfa
jae 0x180043c07
mov byte [rsi + 0x5a], cl
mov dword [rsi + 0x34], ecx
lea rdx, [rbp - 0x51]
mov rcx, rsi
call fcn.180043d60
mov ecx, dword [rbp - 0x71]
xor eax, eax
mov dword [rbp - 0x5d], eax
cmp ecx, 4
jg 0x1800439b8
mov dword [rbx + 8], 9
jne 0x180043311
movsd xmm1, qword [rbp - 0x79]
cvttsd2si ecx, xmm1
movzx eax, cl
cmp ecx, eax
jne 0x180043361
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
jp 0x180043361
jne 0x180043361
lea eax, [rcx + 0x100]
mov dword [rbx + 4], eax
jmp 0x1800439b8
cmp ecx, 3
jne 0x180043361
mov eax, dword [rbp - 0x79]
lea r8, [rbp - 0x11]
mov rdx, qword [rsi]
mov rcx, qword [rsi + 0x10]
mov dword [rbp - 0x11], eax
mov dword [rbp - 0xd], 0xfffffffb
call fcn.1800551f0
mov rcx, rax
cmp dword [rax + 4], 0
jne 0x180043340
mov ecx, dword [rax]
jmp 0x18004334f
mov eax, dword [rsi + 0x40]
mov qword [rcx], rax
mov ecx, dword [rsi + 0x40]
lea eax, [rcx + 1]
mov dword [rsi + 0x40], eax
cmp ecx, 0xff
ja 0x180043361
not ecx
mov dword [rbx + 4], ecx
jmp 0x1800439b8
lea rdx, [rbp - 0x79]
mov rcx, rsi
call fcn.180041de0
cmp dword [rbp - 0x71], 0xc
jne 0x180043669
mov eax, dword [rbp - 0x69]
mov r15d, dword [rbp - 0x79]
cmp dword [rbp - 0x6d], eax
je 0x1800439b4
cmp r15d, dword [rsi + 0x38]
jb 0x180043669
mov r8d, r15d
lea rdx, [rbp - 0x79]
mov rcx, rsi
call fcn.180043f30
mov r9d, dword [rbp - 0x71]
cmp r9d, 0xa
jne 0x180043410
mov r8d, dword [rbp - 0x79]
cmp r8d, 0xffffffff
je 0x180043410
mov ecx, dword [rbp - 0x6d]
cmp ecx, 0xffffffff
jne 0x1800433c2
mov dword [rbp - 0x6d], r8d
jmp 0x180043410
mov r9, qword [rsi + 0x48]
nop word [rax + rax]
mov edx, ecx
movzx eax, word [r9 + rdx*8 + 2]
add eax, 0xffff8000
cmp eax, 0xffffffff
je 0x1800433ef
inc eax
add eax, ecx
cmp eax, 0xffffffff
je 0x1800433ef
mov ecx, eax
jmp 0x1800433d0
sub r8d, ecx
add r8d, 0x7fff
cmp r8d, 0xffff
ja 0x180043c16
mov word [r9 + rdx*8 + 2], r8w
mov r9d, dword [rbp - 0x71]
mov r11d, dword [rbp - 0x69]
mov edx, dword [rbp - 0x6d]
cmp edx, r11d
je 0x1800439a1
mov r12d, 0xffffffff
mov r13d, r12d
cmp edx, r12d
je 0x180043482
mov r8, qword [rsi + 0x48]
nop dword [rax]
nop word [rax + rax]
cmp edx, 1
lea eax, [rdx - 1]
cmovb eax, edx
mov ecx, dword [r8 + rax*8]
movzx eax, cl
sub eax, 0xc
cmp eax, 1
jbe 0x180043466
and ecx, 0xff00
cmp ecx, 0xff00
jne 0x1800434e4
mov eax, edx
movzx ecx, word [r8 + rax*8 + 2]
add ecx, 0xffff8000
cmp ecx, r12d
je 0x180043482
inc edx
add edx, ecx
cmp edx, r12d
jne 0x180043440
mov edx, r11d
cmp r11d, r12d
je 0x180043552
mov r8, qword [rsi + 0x48]
nop dword [rax]
nop word [rax + rax]
cmp edx, 1
lea eax, [rdx - 1]
cmovb eax, edx
mov ecx, dword [r8 + rax*8]
movzx eax, cl
sub eax, 0xc
cmp eax, 1
jbe 0x1800434c6
and ecx, 0xff00
cmp ecx, 0xff00
jne 0x1800434e4
mov eax, edx
movzx ecx, word [r8 + rax*8 + 2]
add ecx, 0xffff8000
cmp ecx, r12d
je 0x180043552
inc edx
add edx, ecx
cmp edx, r12d
jne 0x1800434a0
jmp 0x180043552
cmp r9d, 0xa
jne 0x1800434ef
mov edi, r12d
jmp 0x1800434f9
mov rcx, rsi
call fcn.180040cf0
mov edi, eax
mov ebx, r15d
mov rcx, rsi
shl ebx, 8
mov edx, ebx
or edx, 0x1002b
call fcn.1800406f0
mov edx, dword [rsi + 0x34]
mov rcx, rsi
shl edx, 8
mov r12d, eax
or edx, 0x80010058
call fcn.1800406f0
or ebx, 0x2002b
mov rcx, rsi
mov edx, ebx
call fcn.1800406f0
mov ecx, dword [rsi + 0x28]
lea rdx, [rsi + 0x30]
mov dword [rsi + 0x2c], ecx
mov r8d, edi
mov rcx, rsi
mov r13d, eax
call fcn.180045060
mov r11d, dword [rbp - 0x69]
mov r14d, dword [rsi + 0x28]
mov dword [rsi + 0x2c], r14d
cmp r11d, 0xffffffff
je 0x180043975
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [rsi + 0x48]
mov edi, r11d
mov r9d, dword [rcx + rdi*8]
mov eax, r9d
shr eax, 0x10
add eax, 0xffff8000
cmp eax, 0xffffffff
jne 0x18004358f
mov ebx, eax
jmp 0x180043595
lea ebx, [rax + 1]
add ebx, r11d
cmp r11d, 1
lea eax, [r11 - 1]
cmovb eax, r11d
mov edx, eax
mov r8d, dword [rcx + rax*8]
movzx r10d, r8b
lea eax, [r10 - 0xc]
cmp eax, 1
jbe 0x180043611
shr r8d, 8
cmp r8b, 0xff
jne 0x1800435f4
cmp r15d, 0xff
jne 0x1800435db
and r9d, 0xff00
or r9d, 0x80000058
mov dword [rcx + rdx*8], r9d
jmp 0x180043637
movzx eax, byte [rcx + rdx*8 + 9]
mov byte [rcx + rdx*8 + 1], r15b
cmp r15d, eax
jb 0x180043637
lea eax, [r15 + 1]
mov byte [rcx + rdx*8 + 9], al
jmp 0x180043637
mov eax, r12d
sub eax, r11d
add eax, 0x7fff
cmp eax, 0xffff
ja 0x180043c25
mov word [rcx + rdi*8 + 2], ax
jmp 0x180043658
cmp r15d, 0xff
je 0x18004362a
shr r8d, 0x10
cmp r15d, r8d
je 0x18004362a
mov byte [rcx + rdx*8 + 1], r15b
jmp 0x180043637
add r10b, 2
mov byte [rcx + rdx*8 + 1], 0
mov byte [rcx + rdx*8], r10b
mov ecx, r14d
sub ecx, r11d
add ecx, 0x7fff
cmp ecx, 0xffff
ja 0x180043c34
mov rax, qword [rsi + 0x48]
mov word [rax + rdi*8 + 2], cx
mov r11d, ebx
cmp ebx, 0xffffffff
jne 0x180043570
jmp 0x180043975
lea rdx, [rbp - 0x79]
mov rcx, rsi
call fcn.180041de0
cmp dword [rbp - 0x71], 0xc
jne 0x180043686
mov eax, dword [rsi + 0x38]
cmp dword [rbp - 0x79], eax
jb 0x180043686
dec dword [rsi + 0x34]
mov r15d, dword [rsi + 0x34]
movzx eax, byte [rsi + 0x5a]
lea ecx, [r15 + 1]
cmp ecx, eax
jbe 0x1800436a5
cmp ecx, 0xfa
jae 0x180043c43
mov byte [rsi + 0x5a], cl
mov dword [rsi + 0x34], ecx
lea rdx, [rbp - 0x79]
mov rcx, rsi
mov r8d, r15d
call fcn.180043f30
mov r9d, dword [rbp - 0x71]
cmp r9d, 0xa
jne 0x180043720
mov r8d, dword [rbp - 0x79]
cmp r8d, 0xffffffff
je 0x180043720
mov ecx, dword [rbp - 0x6d]
cmp ecx, 0xffffffff
jne 0x1800436d9
mov dword [rbp - 0x6d], r8d
jmp 0x180043720
mov r9, qword [rsi + 0x48]
nop dword [rax]
mov edx, ecx
movzx eax, word [r9 + rdx*8 + 2]
add eax, 0xffff8000
cmp eax, 0xffffffff
je 0x1800436ff
inc eax
add eax, ecx
cmp eax, 0xffffffff
je 0x1800436ff
mov ecx, eax
jmp 0x1800436e0
sub r8d, ecx
add r8d, 0x7fff
cmp r8d, 0xffff
ja 0x180043c52
mov word [r9 + rdx*8 + 2], r8w
mov r9d, dword [rbp - 0x71]
mov r11d, dword [rbp - 0x69]
mov edx, dword [rbp - 0x6d]
cmp edx, r11d
je 0x1800439a1
mov r12d, 0xffffffff
mov r13d, r12d
cmp edx, r12d
je 0x180043792
mov r8, qword [rsi + 0x48]
nop dword [rax]
nop word [rax + rax]
cmp edx, 1
lea eax, [rdx - 1]
cmovb eax, edx
mov ecx, dword [r8 + rax*8]
movzx eax, cl
sub eax, 0xc
cmp eax, 1
jbe 0x180043776
and ecx, 0xff00
cmp ecx, 0xff00
jne 0x1800437f4
mov eax, edx
movzx ecx, word [r8 + rax*8 + 2]
add ecx, 0xffff8000
cmp ecx, r12d
je 0x180043792
inc edx
add edx, ecx
cmp edx, r12d
jne 0x180043750
mov edx, r11d
cmp r11d, r12d
je 0x180043862
mov r8, qword [rsi + 0x48]
nop dword [rax]
nop word [rax + rax]
cmp edx, 1
lea eax, [rdx - 1]
cmovb eax, edx
mov ecx, dword [r8 + rax*8]
movzx eax, cl
sub eax, 0xc
cmp eax, 1
jbe 0x1800437d6
and ecx, 0xff00
cmp ecx, 0xff00
jne 0x1800437f4
mov eax, edx
movzx ecx, word [r8 + rax*8 + 2]
add ecx, 0xffff8000
cmp ecx, r12d
je 0x180043862
inc edx
add edx, ecx
cmp edx, r12d
jne 0x1800437b0
jmp 0x180043862
cmp r9d, 0xa
jne 0x1800437ff
mov edi, r12d
jmp 0x180043809
mov rcx, rsi
call fcn.180040cf0
mov edi, eax
mov ebx, r15d
mov rcx, rsi
shl ebx, 8
mov edx, ebx
or edx, 0x1002b
call fcn.1800406f0
mov edx, dword [rsi + 0x34]
mov rcx, rsi
shl edx, 8
mov r12d, eax
or edx, 0x80010058
call fcn.1800406f0
or ebx, 0x2002b
mov rcx, rsi
mov edx, ebx
call fcn.1800406f0
mov ecx, dword [rsi + 0x28]
lea rdx, [rsi + 0x30]
mov dword [rsi + 0x2c], ecx
mov r8d, edi
mov rcx, rsi
mov r13d, eax
call fcn.180045060
mov r11d, dword [rbp - 0x69]
mov r14d, dword [rsi + 0x28]
mov dword [rsi + 0x2c], r14d
cmp r11d, 0xffffffff
je 0x180043975
nop dword [rax]
nop dword [rax + rax]
mov rdx, qword [rsi + 0x48]
mov edi, r11d
mov r10d, dword [rdx + rdi*8]
mov eax, r10d
shr eax, 0x10
add eax, 0xffff8000
cmp eax, 0xffffffff
jne 0x18004389f
mov ebx, eax
jmp 0x1800438a5
lea ebx, [rax + 1]
add ebx, r11d
lea eax, [r11 - 1]
cmp r11d, 1
jae 0x1800438b2
mov eax, r11d
mov ecx, eax
mov r8d, dword [rdx + rcx*8]
movzx r9d, r8b
lea eax, [r9 - 0xc]
cmp eax, 1
jbe 0x180043922
shr r8d, 8
cmp r8b, 0xff
jne 0x180043905
cmp r15d, 0xff
jne 0x1800438ec
and r10d, 0xff00
or r10d, 0x80000058
mov dword [rdx + rcx*8], r10d
jmp 0x180043948
movzx eax, byte [rdx + rcx*8 + 9]
mov byte [rdx + rcx*8 + 1], r15b
cmp r15d, eax
jb 0x180043948
lea eax, [r15 + 1]
mov byte [rdx + rcx*8 + 9], al
jmp 0x180043948
mov eax, r12d
sub eax, r11d
add eax, 0x7fff
cmp eax, 0xffff
ja 0x180043c61
mov word [rdx + rdi*8 + 2], ax
jmp 0x180043969
cmp r15d, 0xff
je 0x18004393b
shr r8d, 0x10
cmp r15d, r8d
je 0x18004393b
mov byte [rdx + rcx*8 + 1], r15b
jmp 0x180043948
add r9b, 2
mov byte [rdx + rcx*8 + 1], 0
mov byte [rdx + rcx*8], r9b
mov ecx, r14d
sub ecx, r11d
add ecx, 0x7fff
cmp ecx, 0xffff
ja 0x180043c70
mov rax, qword [rsi + 0x48]
mov word [rax + rdi*8 + 2], cx
mov r11d, ebx
cmp ebx, 0xffffffff
jne 0x180043880
mov edx, dword [rbp - 0x6d]
mov r9d, r15d
mov r8d, r14d
mov dword [rsp + 0x20], r13d
mov rcx, rsi
call fcn.180045200
mov rdi, qword [rbp + 0x67]
mov r12d, 1
mov rbx, qword [rbp + 0x6f]
mov r13d, dword [rbp - 0x61]
mov r14, qword [rbp - 0x21]
mov dword [rbp - 0x71], 0xc
mov dword [rbp - 0x79], r15d
mov qword [rbp - 0x6d], 0xffffffffffffffff
mov dword [rbx + 4], r15d
lea r8, [rbp - 0x51]
mov rdx, rbx
mov rcx, rsi
call fcn.180041040
mov r15d, dword [rbp - 0x5d]
mov eax, dword [rbp - 0x59]
mov dword [rsi + 0x34], eax
mov eax, dword [rdi + 0x34]
cmp eax, 0x2c
je 0x1800439de
cmp eax, 0x3b
jne 0x1800439f4
mov rcx, rdi
call fcn.1800364d0
mov eax, dword [rdi + 0x34]
cmp eax, 0x7d
jne 0x180042f00
jmp 0x1800439fd
cmp eax, 0x7d
jne 0x180043b70
mov rcx, rdi
call fcn.1800364d0
mov edi, dword [rbp + 0x77]
test r15d, r15d
je 0x180043a83
mov edx, dword [rsi + 0x28]
mov rax, qword [rsi + 0x48]
dec edx
mov dword [rbp - 1], 4
mov qword [rbp + 3], 0xffffffffffffffff
mov dword [rbp - 5], 0x43300000
lea rbx, [rax + rdx*8]
lea eax, [rdi - 1]
mov dword [rbp - 9], eax
cmp edi, 0x100
jbe 0x180043a45
mov dword [rsi + 0x28], edx
sub rbx, 8
mov rdx, qword [rsi]
lea r8, [rbp - 9]
mov rcx, qword [rsi + 0x10]
call fcn.1800551f0
mov rcx, rax
cmp dword [rax + 4], 0
jne 0x180043a62
mov ecx, dword [rax]
jmp 0x180043a71
mov eax, dword [rsi + 0x3c]
mov qword [rcx], rax
mov ecx, dword [rsi + 0x3c]
lea eax, [rcx + 1]
mov dword [rsi + 0x3c], eax
shl ecx, 8
or ecx, dword [rbp - 0x59]
shl ecx, 8
or ecx, 0x3f
mov byte [rbx - 5], 0
mov dword [rbx], ecx
mov eax, dword [rsi + 0x28]
mov edx, dword [rbp - 0x39]
dec eax
cmp edx, eax
mov rax, qword [rbp + 0x6f]
jne 0x180043a9f
mov dword [rax], edx
mov ecx, 0xb
dec dword [rsi + 0x34]
jmp 0x180043aa4
mov ecx, 0xc
mov dword [rax + 8], ecx
test r14, r14
jne 0x180043b15
mov r8, qword [rsi + 0x48]
cmp dword [rbp + 0x7f], r14d
jne 0x180043abb
xor r9d, r9d
jmp 0x180043ad6
cmp edi, 3
jae 0x180043ac8
mov r9d, 3
jmp 0x180043ad6
mov eax, 0x7ff
mov r9d, edi
cmp edi, eax
cmova r9d, eax
test r13d, r13d
je 0x180043af1
cmp r13d, 1
jne 0x180043ae6
mov ecx, r13d
jmp 0x180043af3
lea eax, [r13 - 1]
bsr ecx, eax
inc ecx
jmp 0x180043af3
xor ecx, ecx
shl cx, 0xb
or cx, r9w
mov word [r8 + rdx*8 + 2], cx
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp dword [rbp + 0x7f], 0
je 0x180043b31
cmp dword [r14 + 0x18], edi
jae 0x180043b31
mov rcx, qword [rsi + 0x10]
lea r8d, [rdi - 1]
mov rdx, r14
call fcn.180054f00
cmp dword [rbp - 0x35], 0
je 0x180043b5a
mov edx, dword [r14 + 0x14]
mov ecx, dword [r14 + 0x1c]
add rdx, 4
inc ecx
cmp dword [rdx], 0xfffffff4
jne 0x180043b50
mov dword [rdx], 0xffffffff
add rdx, 0x18
sub rcx, 1
jne 0x180043b45
mov rcx, qword [rsi + 0x10]
mov edx, dword [rcx + 8]
mov eax, dword [rdx + 0x24]
cmp dword [rdx + 0x20], eax
jb 0x180043b01
call fcn.18002fbc0
jmp 0x180043b01
mov esi, dword [rbp - 0x25]
mov edx, 0x7d
mov rcx, rdi
cmp esi, dword [rdi + 0x60]
je 0x180043c7f
call fcn.1800366f0
mov edx, 0x7b
mov rcx, rdi
mov rbx, rax
call fcn.1800366f0
mov edx, dword [rdi + 0x34]
mov r9, rbx
mov r8d, 0xa3d
mov dword [rsp + 0x28], esi
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1800363b0
int3
mov rcx, qword [rsi + 8]
mov edx, 0x9a9
call fcn.180041580
int3
mov edx, 0x7b
call fcn.180041590
int3
mov rcx, qword [rbx + 8]
mov edx, 0x9a9
call fcn.180041580
int3
mov edx, 0x5d
call fcn.180041590
int3
mov edx, 0x11f
mov rcx, rdi
call fcn.180041590
int3
mov edx, 0x3d
mov rcx, rdi
call fcn.180041590
int3
mov rcx, qword [rsi + 8]
mov edx, 0x9a9
call fcn.180041580
int3
mov rcx, qword [rsi + 8]
mov edx, 0x98e
call fcn.180041580
int3
mov rcx, qword [rsi + 8]
mov edx, 0x98e
call fcn.180041580
int3
mov rcx, qword [rsi + 8]
mov edx, 0x98e
call fcn.180041580
int3
mov rcx, qword [rsi + 8]
mov edx, 0x9a9
call fcn.180041580
int3
mov rcx, qword [rsi + 8]
mov edx, 0x98e
call fcn.180041580
int3
mov rcx, qword [rsi + 8]
mov edx, 0x98e
call fcn.180041580
int3
mov rcx, qword [rsi + 8]
mov edx, 0x98e
call fcn.180041580
int3
call fcn.180041590
int3