Function at 0x41db30
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
mov byte [rcx + 0x1a0], 0
mov byte [rcx + 0x13], 0
mov r15, rcx
mov byte [rcx + 0xb4], 1
mov qword [rsp + 0x58], rdx
movzx edx, word [rdx + 0x18]
mov qword [rsp + 0x88], r8
mov dword [rsp + 0x74], r9d
mov eax, edx
shr ax, 6
mov ecx, eax
and cx, 0x84
cmp cx, 4
je 0x41ddb0
test al, 4
jne 0x41dd90
mov rbx, qword [rsp + 0x58]
mov rbx, qword [rbx + 0x20]
mov rdi, rbx
mov qword [rsp + 0x60], rbx
xor ebx, ebx
test byte [rdi + 0x1c], 1
jne 0x41de00
mov rdi, qword [rsp + 0x58]
mov ecx, eax
or ecx, 0x20
shl ecx, 6
movzx edx, word [rdi + 0x18]
and edx, 0x3f
or edx, ecx
test al, 0x80
mov word [rdi + 0x18], dx
jne 0x41dbee
or al, 0xa0
and edx, 0x3f
mov r8, rdi
shl eax, 6
or edx, eax
mov word [rdi + 0x18], dx
mov rax, qword [r15 + 0x3a8]
test rax, rax
je 0x41dbee
mov edx, dword [r15 + 0x30]
mov rcx, r15
call rax
mov rax, qword [r15 + 0x3c0]
test rax, rax
je 0x41dc08
mov r8, qword [rsp + 0x58]
mov edx, dword [rsp + 0x74]
mov rcx, r15
call rax
mov rdi, qword [rsp + 0x60]
movzx eax, byte [rdi + 0x1c]
or eax, 8
cmp word [rdi + 0x18], 0
mov byte [rdi + 0x1c], al
jne 0x41dceb
test al, 0x20
jne 0x41f15a
mov rax, qword [rsp + 0x60]
mov edi, dword [rax + 0x14]
cmp byte [r15 + 0x412], 0
je 0x41dec5
mov rax, qword [rsp + 0x60]
lea r8, [rsp + 0xd8]
mov edx, edi
mov rcx, r15
xor esi, esi
mov r13, qword [rax + 8]
mov qword [rsp + 0xd8], 0
call fcn.0041cb00
mov rcx, qword [r15 + 0x28]
mov r8d, dword [rsp + 0x74]
mov r9d, edi
mov rdx, qword [rsp + 0x58]
mov rbp, rax
call fcn.0041b7b0
test edi, edi
mov r12, rax
je 0x41dcc0
nop dword [rax]
mov r9d, dword [r13]
mov rdx, qword [rsp + 0xd8]
mov r8, r13
mov dword [rsp + 0x30], esi
mov qword [rsp + 0x28], r12
mov rcx, rbp
add esi, 1
add r13, 0x18
mov dword [rsp + 0x20], r9d
call fcn.0041cb40
cmp esi, edi
jne 0x41dc90
mov rax, qword [rbp + 8]
mov r9, qword [rsp + 0xd8]
mov r8, rbp
mov rdx, qword [rsp + 0x58]
mov dword [rsp + 0x28], edi
mov rcx, r15
mov qword [rsp + 0x20], rax
call fcn.0041cca0
add dword [0x004dbbf0], edi
test rbx, rbx
je 0x41deed
cmp byte [r15 + 0x10], 0
je 0x41deff
lea r12, [r15 + 0x88]
jmp 0x41dd13
mov rbx, rbp
mov rdi, qword [rbx + 8]
mov rsi, qword [rbx + 0x10]
mov rcx, r12
mov rbp, qword [rbx]
mov qword [rbx], 0
call fcn.0041cbc0
sub rsi, rdi
mov dword [rax + 0x30], 0
mov qword [rax + 0x28], 0
sar rsi, 3
mov qword [rax + 0x20], rbx
mov qword [rax + 0x10], rdi
mov edx, esi
lea rdx, [rdi + rdx*8]
mov qword [rax + 0x18], rdx
cmp byte [r15 + 0x412], 0
jne 0x41dd65
add dword [0x004dbbf0], esi
test rbp, rbp
jne 0x41dd10
mov byte [r15 + 0xb4], 0
mov eax, 2
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rsp + 0x58]
mov byte [r15 + 0xb4], 0
mov rcx, r15
call fcn.0041d620
jmp 0x41dd77
or al, 0x80
and edx, 0x3f
shl eax, 6
or edx, eax
mov rax, qword [rsp + 0x58]
mov word [rax + 0x18], dx
mov rax, qword [r15 + 0x3c8]
test rax, rax
je 0x41df40
mov rdx, qword [rsp + 0x58]
mov rcx, r15
call rax
test al, al
je 0x41df40
mov rax, qword [rsp + 0x58]
movzx eax, word [rax + 0x18]
shr ax, 6
jmp 0x41db85
add byte [r15 + 0x18], 1
add dword [r15 + 0x1dc], 1
mov byte [r15 + 0x19], 1
mov rcx, r15
call fcn.0041f780
movzx edx, byte [rax + 4]
cmp dl, 0x51
jne 0x41de45
test rbx, rbx
je 0x41de40
test byte [rbx + 6], 1
jne 0x41de12
cmp qword [rax + 8], 0
cmove rbx, rax
jmp 0x41de12
mov rbx, rax
jmp 0x41de12
cmp dl, 0x14
je 0x41df6e
cmp dl, 0x16
jne 0x41de5f
lea rdx, [r15 + 0x268]
cmp rax, rdx
jne 0x41de84
mov edx, 1
mov rcx, r15
call fcn.0041d900
test rbx, rbx
je 0x41de84
mov r9d, 1
mov r8, rbx
xor edx, edx
mov rcx, r15
call fcn.0041d5a0
sub dword [r15 + 0x1dc], 1
sub byte [r15 + 0x18], 1
xor ebx, ebx
mov byte [r15 + 0x19], 0
cmp byte [r15 + 0x401], 0
jne 0x41e107
test rbx, rbx
je 0x41deb6
mov rdx, rbx
mov rcx, r15
call fcn.00421f10
mov byte [r15 + 0xb4], 0
xor eax, eax
jmp 0x41dd77
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov r9d, edi
mov rcx, r15
mov r8, qword [rax + 8]
call fcn.0041d5a0
add dword [0x004dbbf0], edi
test rbx, rbx
jne 0x41dcf4
mov byte [r15 + 0xb4], 0
mov eax, 1
jmp 0x41dd77
mov rcx, r15
call fcn.004214c0
mov r8, rax
mov byte [rax + 4], 0x51
mov rax, qword [rsp + 0x88]
mov r9d, 1
xor edx, edx
mov rcx, r15
mov qword [r8 + 8], rax
xor eax, eax
mov word [r8 + 6], ax
call fcn.0041d5a0
jmp 0x41dcff
mov rax, qword [r15 + 0x3a8]
test rax, rax
je 0x41dde5
mov rbx, qword [rsp + 0x58]
mov edx, dword [r15 + 0x30]
mov rcx, r15
mov r8, rbx
call rax
movzx eax, word [rbx + 0x18]
shr ax, 6
jmp 0x41db85
mov rax, qword [rsp + 0x58]
mov byte [r15 + 0x19], 2
cmp byte [r15 + 0x412], 0
mov rax, qword [rax + 0x20]
setne r13b
mov qword [rsp + 0x68], rax
movzx eax, word [rax + 0x18]
test ax, ax
je 0x41eec7
mov rcx, rax
mov rdx, rax
lea rbx, [rax + rax*2]
shl rcx, 6
shl rdx, 9
sub rdx, rcx
shl rbx, 4
mov rcx, r15
lea r14, [rsp + 0xd8]
call fcn.00421f30
mov r12, rax
mov qword [rsp + 0x98], rax
mov rax, qword [rax + 8]
mov r8, rbx
xor edx, edx
mov rdi, rax
mov rcx, rax
mov qword [rsp + 0xa0], rax
call sub.msvcrt.dll_memset
mov rax, rdi
mov dword [rsp + 0x78], 0
add rax, rbx
lea rbx, [r15 + 0x268]
mov qword [r12 + 0x10], rax
mov qword [rsp + 0x90], rbx
xor ebx, ebx
nop
add dword [rsp + 0x78], 1
test r13b, r13b
mov qword [rdi], rax
jne 0x41e382
mov dword [rsp + 0x48], 0x32
xor esi, esi
mov ebp, 2
mov dword [rsp + 0x50], 0
jmp 0x41e0d6
test r13b, r13b
je 0x41e04f
cmp ebp, dword [rsp + 0x48]
ja 0x41e180
mov rdx, r14
mov rcx, r15
call fcn.0041f240
movzx ecx, byte [rax + 4]
mov rdx, rax
cmp cl, 0x51
je 0x41e140
cmp cl, 0x14
je 0x41e150
cmp cl, 0x15
je 0x41e160
cmp cl, 0x13
nop
je 0x41e1a2
cmp cl, 0x16
je 0x41e1d0
cmp cl, 0x25
je 0x41e293
cmp cl, 0x4f
je 0x41e2a2
xor eax, eax
cmp byte [r15 + 0x412], 0
mov r9d, esi
mov r8d, dword [rsp + 0xd8]
mov dword [rsp + 0x20], 0
mov rcx, rdi
setne al
add esi, 1
lea ebp, [rsi + 2]
mov dword [rsp + 0x28], eax
call fcn.0041ca70
mov rax, qword [rdi]
mov edx, ebp
lea rax, [rax + rdx*8]
cmp qword [r12 + 0x18], rax
jae 0x41e040
mov rdx, r12
mov r8d, 0x1f40
mov rcx, r15
call fcn.00421fd0
mov r12, rax
mov rax, qword [rax + 0x10]
mov qword [rdi], rax
jmp 0x41e040
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x20]
test byte [rax + 0x1c], 4
jne 0x41dea6
mov rax, qword [rsp + 0x58]
lea r8, str.function_like_macro___s__must_be_used_with_arguments_in_traditional_C
mov edx, 6
mov rcx, r15
mov r9, qword [rax]
call fcn.004241e0
jmp 0x41dea6
test esi, esi
je 0x41e0d3
jmp 0x41e0a1
add dword [rsp + 0x50], 1
jmp 0x41e0a1
mov ecx, dword [rsp + 0x50]
mov eax, ecx
sub eax, 1
test ecx, ecx
je 0x41e1d0
mov dword [rsp + 0x50], eax
jmp 0x41e0a1
add dword [rsp + 0x48], 0x3e8
mov rcx, qword [rdi + 0x20]
mov edx, dword [rsp + 0x48]
shl rdx, 2
call fcn.00438740
mov qword [rdi + 0x20], rax
jmp 0x41e04f
mov ebp, dword [rsp + 0x50]
test ebp, ebp
jne 0x41e0a1
mov rax, qword [rsp + 0x68]
test byte [rax + 0x1c], 2
je 0x41e1d0
mov rax, qword [rsp + 0x68]
movzx eax, word [rax + 0x18]
cmp dword [rsp + 0x78], eax
je 0x41e0a1
nop dword [rax]
mov r10, rdx
test esi, esi
je 0x41eed6
mov rcx, qword [rdi]
lea ebp, [rsi - 1]
mov eax, ebp
mov rax, qword [rcx + rax*8]
cmp byte [rax + 4], 0x51
je 0x41e207
jmp 0x41eee0
lea eax, [rbp - 1]
mov edx, eax
mov rdx, qword [rcx + rdx*8]
cmp byte [rdx + 4], 0x51
jne 0x41e37a
mov ebp, eax
test ebp, ebp
jne 0x41e1f2
xor r9d, r9d
mov dword [rdi + 0x18], ebp
xor eax, eax
cmp byte [r15 + 0x412], 0
mov rdx, qword [rsp + 0x90]
mov r8d, dword [r15 + 0x268]
mov rcx, rdi
mov dword [rsp + 0x20], 0
mov qword [rsp + 0x48], r10
setne al
mov dword [rsp + 0x28], eax
call fcn.0041ca70
mov rax, qword [rsp + 0x68]
mov r10, qword [rsp + 0x48]
movzx edx, word [rax + 0x18]
movzx eax, dx
cmp dword [rsp + 0x78], eax
ja 0x41e278
mov rcx, qword [rdi]
add ebp, 1
cmp dword [rsp + 0x78], eax
lea rcx, [rcx + rbp*8]
mov qword [r12 + 0x10], rcx
lea rcx, [rdi + 0x30]
cmovne rdi, rcx
movzx eax, byte [r10 + 4]
lea ecx, [rax - 0x15]
cmp cl, 1
jbe 0x41e398
mov rax, qword [r12 + 0x10]
jmp 0x41e010
test byte [rax + 6], 0x40
je 0x41e0a1
jmp 0x41e1d0
mov rcx, r15
mov qword [rsp + 0x80], rax
call fcn.004214c0
mov rdx, qword [rsp + 0x80]
mov r8, rax
mov dword [rsp + 0x80], esi
mov rsi, r8
mov rax, qword [rdx]
mov qword [r8], rax
mov rax, qword [rdx + 8]
mov qword [r8 + 8], rax
mov rax, qword [rdx + 0x10]
mov qword [r8 + 0x10], rax
jmp 0x41e32c
mov rdx, qword [rbx + 0x10]
mov rax, qword [rbx + 0x18]
sub rax, rdx
cmp rax, 7
ja 0x41e30a
sub rdx, qword [rbx + 8]
mov rcx, r15
add rdx, rdx
call fcn.00421f30
mov rdx, qword [rax + 0x10]
mov qword [rax], rbx
mov rbx, rax
mov qword [rdx], rsi
add qword [rbx + 0x10], 8
cmp byte [rsi + 4], 0x50
je 0x41e353
mov rdx, r14
mov rcx, r15
call fcn.0041f240
cmp byte [rax + 4], 0x16
mov rsi, rax
je 0x41e353
test rbx, rbx
jne 0x41e2e0
mov edx, 0x100
mov rcx, r15
call fcn.00421f30
mov rdx, qword [rax + 0x10]
mov rbx, rax
mov qword [rdx], rsi
add qword [rbx + 0x10], 8
cmp byte [rsi + 4], 0x50
jne 0x41e318
mov r8, rsi
mov byte [r15 + 0x19], 2
mov byte [r15 + 0x18], 1
cmp byte [r8 + 4], 0x16
mov esi, dword [rsp + 0x80]
jne 0x41e0d3
mov r10, r8
jmp 0x41e1d3
mov r9d, ebp
jmp 0x41e20e
mov ecx, 0xc8
call fcn.004386c0
mov qword [rdi + 0x20], rax
mov rax, qword [rdi]
jmp 0x41e021
mov edi, dword [rsp + 0x78]
cmp al, 0x16
mov dword [rsp + 0xc8], edi
je 0x41efb7
cmp dword [rsp + 0x78], 1
je 0x41ef54
mov rdi, qword [rsp + 0x68]
mov r9d, dword [rsp + 0x78]
mov rcx, r15
mov r8, qword [rsp + 0x58]
mov rdx, rdi
call fcn.0041d4e0
test al, al
je 0x41eff2
test byte [rdi + 0x1c], 2
je 0x41e3ff
mov rax, qword [rsp + 0x68]
movzx eax, word [rax + 0x18]
movzx edx, ax
cmp dword [rsp + 0x78], edx
jb 0x41ef99
cmp dword [rsp + 0x78], 1
je 0x41ef78
mov rax, qword [rsp + 0x60]
sub byte [r15 + 0x18], 1
mov byte [r15 + 0x19], 0
sub dword [r15 + 0x1dc], 1
cmp word [rax + 0x18], 0
jne 0x41e4ba
mov edx, dword [rsp + 0xc8]
mov rax, qword [rsp + 0x98]
test edx, edx
mov rdi, qword [rax + 8]
je 0x41e49b
mov eax, dword [rsp + 0xc8]
sub eax, 1
lea rax, [rax + rax*2]
shl rax, 4
lea rsi, [rdi + rax + 0x30]
nop
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x41e466
call sub.msvcrt.dll_free
mov qword [rdi + 8], 0
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x41e47c
call sub.msvcrt.dll_free
mov qword [rdi + 0x20], 0
mov rcx, qword [rdi + 0x28]
test rcx, rcx
je 0x41e492
call sub.msvcrt.dll_free
mov qword [rdi + 0x28], 0
add rdi, 0x30
cmp rdi, rsi
jne 0x41e450
mov rcx, qword [rsp + 0x98]
call fcn.00422110
mov rax, qword [rsp + 0x58]
movzx eax, word [rax + 0x18]
shr ax, 6
jmp 0x41dbaa
mov rax, qword [rsp + 0x98]
mov rax, qword [rax + 8]
mov qword [rsp + 0xd8], 0
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0x60]
test byte [rax + 0x1c], 0x20
jne 0x41f219
mov rax, qword [rsp + 0x60]
mov eax, dword [rax + 0x14]
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x60]
mov esi, dword [rsp + 0x50]
mov r10, qword [rax + 8]
mov edx, esi
lea rax, [rdx + rdx*2]
lea rax, [r10 + rax*8]
cmp r10, rax
mov rdi, rax
mov qword [rsp + 0x80], rax
jae 0x41ef49
mov eax, esi
lea rsi, [rsp + 0xd4]
mov r12, r10
mov qword [rsp + 0x78], rbx
mov ebp, eax
mov qword [rsp + 0x90], r14
mov qword [rsp + 0xa0], rsi
lea rsi, [r15 + 0x88]
mov qword [rsp + 0xb0], rsi
lea rsi, [r15 + 0x40]
mov qword [rsp + 0x68], rsi
jmp 0x41e56d
add r12, 0x18
cmp rdi, r12
jbe 0x41e7d7
cmp byte [r12 + 4], 0x4e
jne 0x41e560
mov eax, dword [r12 + 8]
add ebp, 2
add dword [rsp + 0x50], 2
sub eax, 1
lea r10, [rax + rax*2]
mov rax, qword [rsp + 0xa8]
shl r10, 4
lea r14, [rax + r10]
movzx eax, word [r12 + 6]
test al, 4
je 0x41e79b
cmp qword [r14 + 0x10], 0
jne 0x41e560
mov rdx, qword [r15 + 0x40]
mov rax, qword [rdx + 0x10]
mov rdx, qword [rdx + 0x18]
sub rdx, rax
cmp rdx, 2
ja 0x41e5de
mov rdx, qword [rsp + 0x68]
mov r8d, 3
mov rcx, r15
call fcn.004220c0
mov rax, qword [r15 + 0x40]
mov rax, qword [rax + 0x10]
mov byte [rax], 0x22
mov r11d, dword [r14 + 0x18]
lea rbx, [rax + 1]
test r11d, r11d
je 0x41e73f
xor esi, esi
xor eax, eax
mov qword [rsp + 0xb8], rdi
mov dword [rsp + 0x48], 0
mov rdi, rsi
mov esi, eax
mov rax, qword [r14]
mov edx, esi
mov r13, qword [rax + rdx*8]
movzx eax, byte [r13 + 4]
cmp al, 0x51
je 0x41ee27
lea edx, [rax - 0x38]
cmp dl, 3
jbe 0x41ec9e
sub eax, 0x3d
cmp al, 4
jbe 0x41ec9e
mov rcx, r13
call fcn.00421600
xor r10d, r10d
mov eax, eax
mov rcx, qword [r15 + 0x40]
add rax, 3
mov rdx, qword [rcx + 0x18]
sub rdx, rbx
cmp rax, rdx
ja 0x41ee83
mov rdx, qword [rcx + 0x10]
lea rcx, [rbx - 1]
cmp rdx, rcx
je 0x41e67e
test rdi, rdi
cmove rdi, r13
test byte [rdi + 6], 1
je 0x41e67e
mov byte [rbx], 0x20
add rbx, 1
test r10d, r10d
je 0x41ee0b
mov rdx, rax
mov rcx, r15
call fcn.00421f30
mov r10, qword [rax + 0x10]
mov rdx, r13
mov r9d, 1
mov rcx, r15
mov rdi, rax
mov r8, r10
mov qword [rsp + 0xc0], r10
call fcn.00421640
mov r10, qword [rsp + 0xc0]
mov edx, eax
sub edx, r10d
add rdx, r10
cmp r10, rdx
je 0x41e6ee
add r10, 1
movzx eax, byte [r10 - 1]
cmp al, 0x22
je 0x41e6df
cmp al, 0x5c
jne 0x41e790
mov byte [rbx], 0x5c
mov byte [rbx + 1], al
add rbx, 2
cmp r10, rdx
jne 0x41e6ca
mov rdx, rdi
mov rcx, r15
call fcn.00421f10
cmp byte [r13 + 4], 0x3c
je 0x41ee6a
xor edi, edi
mov dword [rsp + 0x48], 0
add esi, 1
cmp esi, dword [r14 + 0x18]
jb 0x41e60b
test byte [rsp + 0x48], 1
mov rdi, qword [rsp + 0xb8]
je 0x41e73f
lea r8, str.invalid_string_literal__ignoring_final_
xor edx, edx
mov rcx, r15
sub rbx, 1
call fcn.004241b0
mov byte [rbx], 0x22
mov rdx, qword [r15 + 0x40]
lea rax, [rbx + 1]
add rbx, 2
mov rcx, r15
mov rsi, rax
sub rsi, qword [rdx + 0x10]
mov qword [rdx + 0x10], rbx
sub rax, rsi
mov rbx, rax
call fcn.004214c0
mov edx, esi
xor r10d, r10d
mov byte [rbx + rdx], 0
mov byte [rax + 4], 0x3d
mov dword [rax + 8], esi
mov qword [rax + 0x10], rbx
mov word [rax + 6], r10w
mov qword [r14 + 0x10], rax
jmp 0x41e560
mov byte [rbx], al
add rbx, 1
jmp 0x41e6c5
test al, 8
jne 0x41e7ca
mov rax, qword [rsp + 0x60]
cmp qword [rax + 8], r12
jae 0x41e7b2
test byte [r12 - 0x12], 8
jne 0x41e7ca
cmp qword [r14 + 8], 0
je 0x41f079
mov eax, dword [r14 + 0x1c]
lea ebp, [rbp + rax - 1]
jmp 0x41e560
mov eax, dword [r14 + 0x18]
lea ebp, [rbp + rax - 1]
jmp 0x41e560
mov rbx, qword [rsp + 0x78]
mov r14, qword [rsp + 0x90]
mov edi, ebp
mov edx, ebp
movzx eax, byte [r15 + 0x412]
test eax, eax
mov dword [rsp + 0x78], eax
je 0x41ed0e
mov r8, r14
mov rcx, r15
call fcn.0041cb00
cmp dword [rsp + 0x78], 1
mov r9d, edi
mov qword [rsp + 0x48], rax
cmove r9d, dword [rsp + 0x50]
mov rax, qword [rax + 8]
mov rcx, qword [r15 + 0x28]
mov r8d, dword [rsp + 0x74]
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0xb0], rax
call fcn.0041b7b0
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x60]
xor r13d, r13d
mov rax, qword [rax + 8]
mov rsi, rax
cmp qword [rsp + 0x80], rsi
mov qword [rsp + 0x68], rax
lea rax, [r15 + 0x250]
mov qword [rsp + 0xb8], rax
jbe 0x41eb92
mov qword [rsp + 0xc0], rbx
jmp 0x41e8d2
cmp byte [r15 + 0x412], 1
mov eax, r13d
jbe 0x41ea21
mov r9d, dword [rsi]
mov dword [rsp + 0x30], eax
mov r8, rsi
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0xd8]
add r13d, 1
mov rcx, qword [rsp + 0x48]
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x28], rax
call fcn.0041cb40
add rsi, 0x18
cmp qword [rsp + 0x80], rsi
jbe 0x41eb8a
cmp byte [rsi + 4], 0x4e
jne 0x41e880
mov eax, dword [rsi + 8]
mov rbx, qword [rsp + 0xa8]
sub eax, 1
lea rax, [rax + rax*2]
shl rax, 4
lea rcx, [rbx + rax]
movzx eax, word [rsi + 6]
test al, 4
je 0x41eb54
cmp byte [r15 + 0x412], 0
lea r14, [rcx + 0x10]
setne bpl
jne 0x41ed38
xor ebx, ebx
mov edi, 1
mov qword [rsp + 0x90], 0
mov r12d, 1
cmp byte [r15 + 0x10], 0
je 0x41e93b
cmp byte [r15 + 0x11], 0
je 0x41e950
mov rax, qword [rsp + 0x60]
cmp rsi, qword [rax + 8]
je 0x41e950
test byte [rsi - 0x12], 8
je 0x41ecb7
test r12d, r12d
je 0x41eadd
lea eax, [r12 + r13]
mov dword [rsp + 0x68], eax
mov rax, r14
mov r14d, r13d
mov r12, rax
jmp 0x41e9be
xor r8d, r8d
test r12, r12
mov r9d, dword [rbx]
je 0x41e97f
mov r8, qword [r12]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
mov dword [rsp + 0x20], edx
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rax
call fcn.0041cb40
test edi, edi
je 0x41e9e4
cmp edi, 2
je 0x41e9e4
lea r10d, [r14 + 1]
cmp r10d, dword [rsp + 0x68]
je 0x41ea4a
mov r14d, r10d
cmp dword [rsp + 0x78], 2
mov eax, r14d
cmovl eax, r13d
cmp byte [r15 + 0x412], 1
jbe 0x41e9f5
test bpl, bpl
mov edx, dword [rsi]
jne 0x41e970
mov r8, qword [r12]
mov r9d, dword [r8]
jmp 0x41e97f
lea rax, [rbx + 4]
add r12, 8
test bpl, bpl
cmovne rbx, rax
jmp 0x41e9ac
mov rcx, qword [rsp + 0x60]
mov rax, rsi
sub rax, qword [rcx + 8]
movabs rcx, 0xaaaaaaaaaaaaaaab
mov qword [rsp + 0xa0], rcx
sar rax, 3
imul eax, dword [rsp + 0xa0]
jmp 0x41e9d4
mov rbx, qword [rsp + 0x60]
mov rax, rsi
sub rax, qword [rbx + 8]
movabs rbx, 0xaaaaaaaaaaaaaaab
mov qword [rsp + 0x68], rbx
sar rax, 3
imul eax, dword [rsp + 0x68]
jmp 0x41e891
test byte [rsi + 6], 8
je 0x41ea65
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x10]
sub rax, 8
mov qword [rsp + 0x90], rax
cmp byte [r15 + 0x10], 0
jne 0x41ea76
test byte [rsi + 6], 8
je 0x41ed93
mov rbx, qword [rsp + 0x90]
test rbx, rbx
je 0x41ead3
mov rcx, r15
call fcn.004214c0
mov rdx, qword [rbx]
movzx edx, byte [rdx + 4]
mov byte [rax + 4], dl
mov rdx, qword [rbx]
mov rbx, qword [rdx + 0x10]
mov rcx, qword [rdx + 8]
mov qword [rax + 0x10], rbx
mov rbx, qword [rsp + 0x90]
mov qword [rax + 8], rcx
test byte [rsi + 6], 8
mov rdx, qword [rbx]
movzx edx, word [rdx + 6]
je 0x41ec03
or edx, 8
mov word [rax + 6], dx
mov rbx, qword [rsp + 0x90]
mov qword [rbx], rax
mov r13d, dword [rsp + 0x68]
jmp 0x41e8c0
cmp byte [r15 + 0x40f], 0
mov dword [rsp + 0x68], r13d
je 0x41ea65
mov rax, qword [rsp + 0x60]
test byte [rax + 0x1c], 4
jne 0x41ea65
cmp byte [r15 + 0x40d], 0
jne 0x41ea65
mov rax, qword [r15]
test rax, rax
je 0x41eb1f
cmp byte [rax + 0x6d], 0
jne 0x41ea65
mov rbx, qword [rsp + 0x58]
mov eax, dword [rsi + 8]
lea r8, str.invoking_macro__s_argument__d:_empty_macro_arguments_are_undefined_in_ISO_C90_and_ISO_C98
mov edx, 2
mov rcx, r15
mov rbx, qword [rbx]
mov dword [rsp + 0x20], eax
mov r9, rbx
mov qword [rsp + 0x68], rbx
call fcn.004241b0
mov dword [rsp + 0x68], r13d
jmp 0x41ea65
test al, 8
je 0x41ec0f
cmp byte [r15 + 0x412], 0
mov r12d, dword [rcx + 0x18]
mov r14, qword [rcx]
setne bpl
jne 0x41ee4d
xor ebx, ebx
xor edi, edi
mov qword [rsp + 0x90], 0
jmp 0x41e92d
mov rbx, qword [rsp + 0xc0]
mov r8d, dword [rsp + 0x78]
test r8d, r8d
jne 0x41edcf
mov rdi, qword [rsp + 0x48]
lea rcx, [r15 + 0x88]
mov rsi, qword [rdi + 0x10]
sub rsi, qword [rdi + 8]
call fcn.0041cbc0
mov qword [rax + 0x20], rdi
mov rdi, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x58]
mov dword [rax + 0x30], 0
shr rsi, 3
mov esi, esi
mov qword [rax + 0x10], rdi
lea rdx, [rdi + rsi*8]
mov qword [rax + 0x28], rcx
mov qword [rax + 0x18], rdx
mov rdi, qword [rsp + 0x48]
mov rax, qword [rdi + 0x10]
sub rax, qword [rdi + 8]
shr rax, 3
add dword [0x004dbbf0], eax
jmp 0x41e421
and edx, 0xfffffff7
mov word [rax + 6], dx
jmp 0x41eac8
mov rax, qword [rsp + 0x60]
cmp rsi, qword [rax + 8]
je 0x41ed61
test byte [rsi - 0x12], 8
je 0x41ed61
cmp byte [r15 + 0x412], 0
mov r12d, dword [rcx + 0x18]
mov r14, qword [rcx]
setne bpl
xor ebx, ebx
test bpl, bpl
je 0x41ec4c
xor edx, edx
call fcn.0041cac0
mov rbx, rax
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax + 8]
mov rax, qword [rax + 0x10]
mov rdx, rax
sub rdx, rcx
shr rdx, 3
test edx, edx
je 0x41eeea
mov r8, qword [rax - 8]
lea rdx, [rax - 8]
mov qword [rsp + 0x90], rdx
cmp byte [r8 + 4], 0x13
je 0x41f019
xor eax, eax
xor edi, edi
test r12d, r12d
cmovne rdx, rax
mov qword [rsp + 0x90], rdx
jmp 0x41e92d
mov rcx, r13
call fcn.00421600
mov eax, eax
mov r10d, 1
shl rax, 2
jmp 0x41e645
mov rcx, r15
call fcn.004214c0
xor ecx, ecx
mov byte [rax + 4], 0x51
mov qword [rax + 8], rsi
mov word [rax + 6], cx
cmp byte [r15 + 0x412], 1
mov r8, rax
mov eax, r13d
jbe 0x41ef20
mov r9d, dword [r8]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x48]
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x28], rax
call fcn.0041cb40
jmp 0x41e950
xor r8d, r8d
mov rcx, r15
call fcn.0041cb00
mov qword [rsp + 0x48], rax
mov rax, qword [rax + 8]
mov qword [rsp + 0x50], 0
mov qword [rsp + 0xb0], rax
jmp 0x41e83e
mov edx, 1
mov edi, 1
mov r12d, 1
call fcn.0041cac0
mov qword [rsp + 0x90], 0
mov rbx, rax
jmp 0x41e92d
cmp byte [r15 + 0x412], 0
mov r12d, dword [rcx + 0x1c]
mov r14, qword [rcx + 8]
setne bpl
jne 0x41eefd
xor ebx, ebx
mov edi, 2
mov qword [rsp + 0x90], 0
jmp 0x41e92d
mov r9d, dword [r15 + 0x250]
mov r8, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x48]
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], r9d
call fcn.0041cb40
jmp 0x41ea76
mov r8, qword [rsp + 0x48]
mov r9, qword [rsp + 0xd8]
mov rcx, r15
mov rdx, qword [rsp + 0x58]
mov rax, qword [r8 + 0x10]
sub rax, qword [r8 + 8]
shr rax, 3
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x20], rax
call fcn.0041cca0
jmp 0x41ebe7
mov r8, rbx
mov r9d, 1
mov rdx, r13
mov rcx, r15
call fcn.00421640
mov rbx, rax
jmp 0x41e6f9
test rdi, rdi
je 0x41f070
test byte [rdi + 6], 1
jne 0x41e70e
cmp qword [r13 + 8], 0
mov eax, 0
cmove rdi, rax
jmp 0x41e70e
xor edx, edx
xor edi, edi
call fcn.0041cac0
mov qword [rsp + 0x90], 0
mov rbx, rax
jmp 0x41e92d
mov rax, qword [r13 + 0x10]
cmp byte [rax], 0x5c
jne 0x41e704
add dword [rsp + 0x48], 1
xor edi, edi
jmp 0x41e70e
mov rdx, qword [rsp + 0x68]
sub rbx, qword [rcx + 0x10]
mov r8, rax
mov rcx, r15
mov dword [rsp + 0xcc], r10d
mov qword [rsp + 0xc0], rax
call fcn.004220c0
mov rdx, qword [r15 + 0x40]
mov r10d, dword [rsp + 0xcc]
mov rax, qword [rsp + 0xc0]
mov rdx, qword [rdx + 0x10]
add rbx, rdx
jmp 0x41e661
mov ebx, 0x30
mov edx, 0x1c0
jmp 0x41dfb3
xor ebp, ebp
xor r9d, r9d
jmp 0x41e20e
mov r9d, esi
mov ebp, esi
jmp 0x41e20e
xor edi, edi
mov qword [rsp + 0x90], 0
jmp 0x41e92d
mov edx, 2
mov edi, 2
call fcn.0041cac0
mov qword [rsp + 0x90], 0
mov rbx, rax
jmp 0x41e92d
mov rcx, qword [rsp + 0x60]
mov rax, rsi
sub rax, qword [rcx + 8]
movabs rcx, 0xaaaaaaaaaaaaaaab
mov qword [rsp + 0x68], rcx
sar rax, 3
imul eax, dword [rsp + 0x68]
jmp 0x41ece1
mov eax, dword [rsp + 0x50]
mov edi, eax
jmp 0x41e7e8
test dx, dx
jne 0x41e3b6
mov rax, qword [rsp + 0xa0]
mov edi, dword [rax + 0x18]
xor eax, eax
test edi, edi
setne al
mov dword [rsp + 0x78], eax
jmp 0x41e3b6
mov rdi, qword [rsp + 0xa0]
mov esi, dword [rdi + 0x18]
test esi, esi
jne 0x41e3ff
cmp byte [r15 + 0x40e], 0
jne 0x41e3ff
lea rax, [rax + rax*2]
mov rdi, qword [rsp + 0xa0]
shl rax, 4
mov qword [rdi + rax - 0x30], 0
jmp 0x41e3ff
mov rax, qword [r15 + 0x88]
cmp qword [rax + 8], 0
je 0x41f22a
mov edx, 1
mov rcx, r15
call fcn.0041d900
mov rax, qword [rsp + 0x58]
lea r8, [0x004c2f68]
mov edx, 3
mov rcx, r15
mov r9, qword [rax]
call fcn.004241b0
mov rdx, qword [rsp + 0x98]
mov rcx, r15
call fcn.00421f10
mov byte [r15 + 0x19], 0
sub dword [r15 + 0x1dc], 1
sub byte [r15 + 0x18], 1
jmp 0x41de98
mov rdi, qword [rsp + 0x60]
test byte [rdi + 0x1c], 2
je 0x41ec86
movzx r8d, word [rdi + 0x18]
cmp dword [rsi + 8], r8d
jne 0x41ec86
test r14, r14
je 0x41f048
xor edi, edi
cmp qword [r14], 0
jne 0x41e92d
cmp rcx, rax
jae 0x41eeea
mov rax, qword [rsp + 0x48]
xor edi, edi
mov qword [rsp + 0x90], 0
mov qword [rax + 0x10], rdx
jmp 0x41e92d
mov rdi, qword [r13 + 8]
jmp 0x41e70e
mov r9d, dword [r14 + 0x18]
movzx ebx, byte [r15 + 0x412]
test r9d, r9d
je 0x41e7bd
cmp byte [r15 + 0x401], 0
mov ecx, 0x800
mov byte [r15 + 0x401], 0
setne sil
call fcn.004386c0
mov qword [r14 + 8], rax
cmp byte [r15 + 0x412], 0
je 0x41f0c8
mov ecx, 0x400
call fcn.004386c0
mov qword [r14 + 0x28], rax
test bl, bl
je 0x41f1c3
mov ebx, dword [r14 + 0x18]
mov rax, qword [r14]
xor r8d, r8d
mov r9, qword [r14 + 0x20]
mov rcx, r15
lea edx, [rbx + 1]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], edx
xor edx, edx
call fcn.0041cca0
mov r13d, dword [r14 + 0x1c]
mov ebx, 0x100
add r13d, 1
cmp rbx, r13
jb 0x41f17d
mov rdx, qword [rsp + 0xa0]
mov rcx, r15
call fcn.0041f240
cmp byte [rax + 4], 0x16
je 0x41f169
xor edx, edx
cmp byte [r15 + 0x412], 0
mov r9d, dword [r14 + 0x1c]
mov r8d, dword [rsp + 0xd4]
mov dword [rsp + 0x20], 2
mov rcx, r14
setne dl
mov dword [rsp + 0x28], edx
mov rdx, rax
call fcn.0041ca70
mov eax, dword [r14 + 0x1c]
lea r13d, [rax + 1]
mov dword [r14 + 0x1c], r13d
jmp 0x41f0fd
mov rcx, rdi
call fcn.004703f0
mov edi, eax
jmp 0x41dc32
mov rcx, r15
call fcn.0041d770
mov byte [r15 + 0x401], sil
jmp 0x41e7bd
mov rcx, qword [r14 + 8]
mov rdx, r13
lea rbx, [r13 + r13]
shl rdx, 4
call fcn.00438740
mov qword [r14 + 8], rax
cmp byte [r15 + 0x412], 0
je 0x41f106
mov rcx, qword [r14 + 0x28]
test rcx, rcx
je 0x41f203
lea rdx, [r13*8]
call fcn.00438740
mov qword [r14 + 0x28], rax
jmp 0x41f106
mov eax, dword [r14 + 0x18]
mov r13, qword [r14]
mov rcx, qword [rsp + 0xb0]
lea ebx, [rax + 1]
call fcn.0041cbc0
lea rdx, [r13 + rbx*8]
mov dword [rax + 0x30], 0
mov qword [rax + 0x28], 0
mov qword [rax + 0x20], 0
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], rdx
jmp 0x41f0f4
lea rcx, [r13*8]
call fcn.004386c0
mov qword [r14 + 0x28], rax
jmp 0x41f106
mov rcx, rax
call fcn.004703f0
mov dword [rsp + 0x50], eax
jmp 0x41e4f5
cmp byte [r15 + 0x10], 0
je 0x41efd6
jmp 0x41efc9