Function at 0x43d250
Capabilities:
Encode data using base64
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
mov byte [rcx + 0x13], 0
mov r15, rcx
mov qword [rsp + 0x148], rdx
movzx edx, word [rdx + 0x18]
mov byte [rcx + 0x1b8], 0
mov byte [rcx + 0xc8], 1
mov qword [rsp + 0x150], r8
mov eax, edx
mov dword [rsp + 0x158], r9d
shr ax, 6
mov ecx, eax
and cx, 0x84
cmp cx, 4
je 0x43d440
test al, 4
jne 0x43d3e0
mov rbx, qword [rsp + 0x148]
mov rbx, qword [rbx + 0x20]
mov rdi, rbx
mov qword [rsp + 0x58], rbx
xor ebx, ebx
test byte [rdi + 0x1c], 1
jne 0x43d4f0
test al, 0x80
je 0x43d4a5
mov rdi, qword [rsp + 0x148]
or eax, 0x20
shl eax, 6
movzx edi, word [rdi + 0x18]
mov edx, edi
mov word [rsp + 0x48], di
mov rdi, qword [rsp + 0x148]
and edx, 0x3f
or eax, edx
mov word [rdi + 0x18], ax
mov rax, qword [r15 + 0x418]
test rax, rax
je 0x43d325
mov r8, qword [rsp + 0x148]
mov rcx, r15
mov edx, dword [rsp + 0x158]
call rax
mov rdi, qword [rsp + 0x58]
movzx eax, byte [rdi + 0x1c]
mov byte [rsp + 0x48], al
or eax, 8
cmp word [rdi + 0x18], 0
mov byte [rdi + 0x1c], al
je 0x43d5e2
test rbx, rbx
je 0x43d6c1
cmp byte [r15 + 0x10], 0
je 0x43d6d3
lea r12, [r15 + 0x88]
nop
mov rdi, qword [rbx + 8]
mov rcx, r12
mov rsi, qword [rbx + 0x10]
mov rbp, qword [rbx]
mov qword [rbx], 0
call fcn.0043c030
mov dword [rax + 0x30], 0
sub rsi, rdi
mov qword [rax + 0x28], 0
sar rsi, 3
mov qword [rax + 0x20], rbx
mov edx, esi
mov qword [rax + 0x10], rdi
lea rdx, [rdi + rdx*8]
mov qword [rax + 0x18], rdx
cmp byte [r15 + 0x495], 0
jne 0x43d3b2
add dword [0x005c91e0], esi
test rbp, rbp
mov rbx, rbp
jne 0x43d360
mov byte [r15 + 0xc8], 0
mov eax, 2
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [r15 + 0xc0]
mov byte [r15 + 0xc8], 0
test byte [rax + 0x19], 1
je 0x43d420
mov r9d, dword [r15 + 0xb8]
mov r8d, dword [rsp + 0x158]
mov rcx, r15
mov rdx, qword [rsp + 0x148]
call fcn.0043cbd0
jmp 0x43d3c7
mov rax, qword [rax + 0x20]
test byte [rax + 0x1c], 1
je 0x43d3f5
mov rax, qword [r15 + 0x1c0]
mov eax, dword [rax - 0x20]
mov dword [rsp + 0x158], eax
mov r9d, eax
jmp 0x43d3fc
mov rbx, qword [rsp + 0x148]
or al, 0x80
and edx, 0x3f
shl eax, 6
or eax, edx
mov word [rbx + 0x18], ax
mov rax, qword [r15 + 0x428]
test rax, rax
je 0x43d46e
mov rdx, rbx
mov rcx, r15
call rax
test al, al
jne 0x43d48b
mov rax, qword [r15 + 0x400]
test rax, rax
je 0x43d48b
mov edx, dword [r15 + 0x30]
mov rcx, r15
mov r8, qword [rsp + 0x148]
call rax
mov rax, qword [rsp + 0x148]
movzx eax, word [rax + 0x18]
mov word [rsp + 0x48], ax
shr ax, 6
jmp 0x43d2ab
mov rdi, qword [rsp + 0x148]
or al, 0xa0
shl eax, 6
movzx edi, word [rdi + 0x18]
mov edx, edi
mov word [rsp + 0x48], di
mov rdi, qword [rsp + 0x148]
and edx, 0x3f
or eax, edx
mov word [rdi + 0x18], ax
mov rax, qword [r15 + 0x400]
test rax, rax
je 0x43d305
mov edx, dword [r15 + 0x30]
mov r8, rdi
mov rcx, r15
call rax
jmp 0x43d305
add byte [r15 + 0x18], 1
mov byte [r15 + 0x19], 1
add dword [r15 + 0x1f4], 1
mov rcx, r15
call fcn.0043f6d0
movzx edx, byte [rax + 4]
cmp dl, 0x53
jne 0x43d535
test rbx, rbx
je 0x43d530
test byte [rbx + 8], 1
jne 0x43d502
cmp qword [rax + 0x10], 0
cmove rbx, rax
jmp 0x43d502
mov rbx, rax
jmp 0x43d502
cmp dl, 0x14
je 0x43d730
cmp dl, 0x16
jne 0x43d54f
lea rdx, [r15 + 0x2b8]
cmp rax, rdx
jne 0x43d574
mov edx, 1
mov rcx, r15
call fcn.0043cf80
test rbx, rbx
je 0x43d574
mov r9d, 1
mov r8, rbx
xor edx, edx
mov rcx, r15
call fcn.0043cb60
sub dword [r15 + 0x1f4], 1
mov byte [r15 + 0x19], 0
sub byte [r15 + 0x18], 1
cmp byte [r15 + 0x482], 0
je 0x43d5d3
mov rax, qword [rsp + 0x148]
mov rax, qword [rax + 0x20]
test byte [rax + 0x1c], 4
jne 0x43d5d3
xor ebx, ebx
mov rax, qword [rsp + 0x148]
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.0042d9c0
test rbx, rbx
je 0x43d5d3
mov rdx, rbx
mov rcx, r15
call fcn.00436810
mov byte [r15 + 0xc8], 0
xor eax, eax
jmp 0x43d3c7
test al, 0x20
mov rsi, rdi
mov edi, dword [rdi + 0x14]
jne 0x43e9df
cmp byte [r15 + 0x495], 0
mov rsi, qword [rsi + 8]
je 0x43d710
mov ebp, edi
mov rcx, rbp
shl rcx, 4
call fcn.00474400
lea rdx, [rbp*8]
mov rcx, r15
mov qword [rsp + 0x48], rax
call fcn.00436830
mov rcx, qword [r15 + 0x28]
mov r9d, edi
mov r8d, dword [rsp + 0x158]
mov rbp, rax
mov rdx, qword [rsp + 0x148]
call fcn.00439dc0
test edi, edi
mov r13, rax
je 0x43d68d
lea r14, [rsi + 0x20]
mov r8, rsi
xor r12d, r12d
mov rsi, qword [rsp + 0x48]
jmp 0x43d664
add r14, 0x20
mov r9d, dword [r8]
mov rdx, rsi
mov dword [rsp + 0x30], r12d
mov rcx, rbp
mov qword [rsp + 0x28], r13
add r12d, 1
mov dword [rsp + 0x20], r9d
call fcn.0043c190
cmp r12d, edi
mov r8, r14
jne 0x43d660
mov dword [rsp + 0x28], edi
mov rax, qword [rbp + 8]
mov r8, rbp
mov rcx, r15
mov r9, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x148]
mov qword [rsp + 0x20], rax
call fcn.0043c0a0
add dword [0x005c91e0], edi
test rbx, rbx
jne 0x43d34c
mov eax, 1
mov byte [r15 + 0xc8], 0
jmp 0x43d3c7
mov rcx, r15
call fcn.00435d80
xor ecx, ecx
mov r9d, 1
xor edx, edx
mov r8, rax
mov byte [rax + 4], 0x53
mov rax, qword [rsp + 0x150]
mov word [r8 + 8], cx
mov rcx, r15
mov qword [r8 + 0x10], rax
call fcn.0043cb60
jmp 0x43d357
mov rdx, qword [rsp + 0x148]
mov r9d, edi
mov r8, rsi
mov rcx, r15
call fcn.0043cb60
jmp 0x43d6b2
movzx eax, byte [r15 + 0x495]
mov byte [r15 + 0x19], 2
mov byte [rsp + 0x80], al
mov rax, qword [rsp + 0x148]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x60], rax
movzx eax, word [rax + 0x18]
test ax, ax
je 0x43e9c0
imul rdx, rax, 0x1c0
lea rbx, [rax + rax*2]
shl rbx, 4
mov rcx, r15
call fcn.00436830
mov r8, rbx
xor edx, edx
mov rsi, qword [rax + 8]
mov rdi, rax
mov qword [rsp + 0x88], rax
mov r12, rdi
mov rcx, rsi
mov qword [rsp + 0x98], rsi
call sub.msvcrt.dll_memset
cmp byte [rsp + 0x80], 0
lea rax, [rsi + rbx]
mov dword [rsp + 0x6c], 0
mov qword [rdi + 0x10], rax
lea rdi, [rsp + 0xec]
mov qword [rsp + 0x48], rdi
setne byte [rsp + 0x50]
xor ebx, ebx
nop dword [rax]
mov edi, dword [rsp + 0x6c]
mov qword [rsi], rax
add edi, 1
cmp byte [rsp + 0x80], 0
mov dword [rsp + 0x68], edi
jne 0x43db50
mov r13d, 0x32
xor edi, edi
xor ebp, ebp
mov r14d, 2
jmp 0x43d814
test rax, rax
je 0x49183e
mov qword [rax + rdx*8], r8
add edi, 1
lea r14d, [rdi + 2]
mov edx, r14d
lea rax, [rax + rdx*8]
cmp qword [r12 + 0x18], rax
jb 0x43d8f0
cmp r14d, r13d
jbe 0x43d836
cmp byte [rsp + 0x50], 0
jne 0x43d910
mov rdx, qword [rsp + 0x48]
mov rcx, r15
call fcn.0043f180
mov r8, rax
movzx eax, byte [rax + 4]
cmp al, 0x53
je 0x43d8d0
cmp al, 0x14
je 0x43d8c0
cmp al, 0x15
je 0x43d930
cmp al, 0x13
je 0x43d941
cmp al, 0x16
je 0x43db70
cmp al, 0x25
je 0x43da10
cmp al, 0x51
je 0x43da23
mov rax, qword [rsi]
cmp byte [r15 + 0x495], 0
mov edx, edi
je 0x43d800
test rax, rax
je 0x49183e
mov rcx, qword [rsi + 0x20]
mov r9d, dword [rsp + 0xec]
mov qword [rax + rdx*8], r8
lea rcx, [rcx + rdx*4]
test rcx, rcx
je 0x43d80d
mov dword [rcx], r9d
jmp 0x43d80d
add ebp, 1
mov rax, qword [rsi]
jmp 0x43d881
test edi, edi
mov rax, qword [rsi]
jne 0x43d881
mov edx, r14d
lea rax, [rax + rdx*8]
cmp qword [r12 + 0x18], rax
jae 0x43d826
nop dword [rax]
mov rdx, r12
mov r8d, 0x1f40
mov rcx, r15
call fcn.004368d0
mov r12, rax
mov rax, qword [rax + 0x10]
mov qword [rsi], rax
jmp 0x43d826
mov rcx, qword [rsi + 0x20]
lea edx, [r13 + 0x3e8]
mov r13, rdx
shl rdx, 2
call fcn.00474480
mov qword [rsi + 0x20], rax
jmp 0x43d836
lea edx, [rbp - 1]
test ebp, ebp
mov rax, qword [rsi]
je 0x43d965
mov ebp, edx
jmp 0x43d881
test ebp, ebp
mov rax, qword [rsi]
jne 0x43d881
mov rcx, qword [rsp + 0x60]
test byte [rcx + 0x1c], 2
je 0x43d965
movzx edx, word [rcx + 0x18]
cmp dword [rsp + 0x68], edx
je 0x43d881
test edi, edi
je 0x43e9cf
lea ecx, [rdi - 1]
mov rdx, rcx
mov rcx, qword [rax + rcx*8]
cmp byte [rcx + 4], 0x53
je 0x43d99a
jmp 0x43e9d6
lea r9d, [rdx - 1]
mov rcx, r9
mov r9, qword [rax + r9*8]
cmp byte [r9 + 4], 0x53
jne 0x43db40
mov edx, ecx
test edx, edx
jne 0x43d982
xor ecx, ecx
mov dword [rsi + 0x18], edx
cmp byte [r15 + 0x495], 0
lea r9, [r15 + 0x2b8]
jne 0x43db10
test rax, rax
je 0x491848
mov qword [rax + rcx*8], r9
mov rdi, qword [rsp + 0x60]
movzx ecx, word [rdi + 0x18]
mov edi, dword [rsp + 0x68]
mov r9d, ecx
cmp edi, ecx
ja 0x43d9ed
lea edx, [rdx + 1]
lea rax, [rax + rdx*8]
mov qword [r12 + 0x10], rax
lea rax, [rsi + 0x30]
cmovne rsi, rax
movzx eax, byte [r8 + 4]
lea edx, [rax - 0x15]
cmp dl, 1
jbe 0x43db80
mov edi, dword [rsp + 0x68]
mov rax, qword [r12 + 0x10]
mov dword [rsp + 0x6c], edi
jmp 0x43d7d0
test byte [r8 + 8], 0x40
mov rax, qword [rsi]
je 0x43d881
jmp 0x43d965
mov rcx, r15
mov qword [rsp + 0x70], r8
call fcn.00435d80
mov r8, qword [rsp + 0x70]
mov dword [rsp + 0x78], edi
mov rdi, rbx
mov qword [rsp + 0x70], rsi
mov rbx, qword [rsp + 0x48]
mov rsi, rax
mov rdx, qword [r8]
mov qword [rax], rdx
mov rdx, qword [r8 + 8]
mov qword [rax + 8], rdx
mov rdx, qword [r8 + 0x10]
mov qword [rax + 0x10], rdx
mov rdx, qword [r8 + 0x18]
mov qword [rax + 0x18], rdx
jmp 0x43dabf
mov rdx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
sub rax, rdx
cmp rax, 7
ja 0x43da9a
sub rdx, qword [rdi + 8]
mov rcx, r15
add rdx, rdx
call fcn.00436830
mov rdx, qword [rax + 0x10]
mov qword [rax], rdi
mov rdi, rax
mov qword [rdx], rsi
add rdx, 8
cmp byte [rsi + 4], 0x52
mov qword [rdi + 0x10], rdx
je 0x43dae0
mov rdx, rbx
mov rcx, r15
call fcn.0043f180
cmp byte [rax + 4], 0x16
mov rsi, rax
je 0x43dae0
test rdi, rdi
jne 0x43da70
mov edx, 0x100
mov rcx, r15
call fcn.00436830
mov rdi, rax
mov rdx, qword [rax + 0x10]
jmp 0x43da9a
mov r8, rsi
mov r10d, 0x201
mov rsi, qword [rsp + 0x70]
mov rbx, rdi
mov word [r15 + 0x18], r10w
cmp byte [r8 + 4], 0x16
mov edi, dword [rsp + 0x78]
mov rax, qword [rsi]
je 0x43d965
jmp 0x43d814
test rax, rax
je 0x491848
mov r10, qword [rsi + 0x20]
mov r11d, dword [r15 + 0x2b8]
mov qword [rax + rcx*8], r9
lea r10, [r10 + rcx*4]
test r10, r10
je 0x43d9c5
mov dword [r10], r11d
jmp 0x43d9c5
mov ecx, edx
jmp 0x43d9a0
mov ecx, 0xc8
call fcn.00474400
mov qword [rsi + 0x20], rax
mov rax, qword [rsi]
jmp 0x43d7ec
mov rax, qword [rsi]
jmp 0x43d965
cmp al, 0x16
je 0x43e8ce
mov eax, dword [rsp + 0x68]
cmp eax, 1
mov esi, eax
je 0x43ebdd
mov rdi, qword [rsp + 0x60]
mov r9d, esi
mov rcx, r15
mov r8, qword [rsp + 0x148]
mov rdx, rdi
call fcn.0043ca90
test al, al
mov byte [rsp + 0x90], al
je 0x43e90c
test byte [rdi + 0x1c], 2
je 0x43dbdf
movzx edx, word [rdi + 0x18]
cmp esi, edx
mov rax, rdx
jb 0x43edaa
cmp esi, 1
je 0x43ed87
mov rax, qword [rsp + 0x88]
mov byte [r15 + 0x19], 0
sub byte [r15 + 0x18], 1
sub dword [r15 + 0x1f4], 1
mov rax, qword [rax + 8]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x58]
cmp word [rax + 0x18], 0
jne 0x43dcb0
mov r8d, dword [rsp + 0x68]
test r8d, r8d
je 0x43dc89
mov eax, dword [rsp + 0x6c]
mov rsi, qword [rsp + 0x50]
lea rax, [rax + rax*2]
lea rdi, [rsi + 8]
shl rax, 4
lea rsi, [rsi + rax + 0x38]
nop word cs:[rax + rax]
mov rcx, qword [rdi]
test rcx, rcx
je 0x43dc54
call sub.msvcrt.dll_free
mov qword [rdi], 0
mov rcx, qword [rdi + 0x18]
test rcx, rcx
je 0x43dc6a
call sub.msvcrt.dll_free
mov qword [rdi + 0x18], 0
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x43dc80
call sub.msvcrt.dll_free
mov qword [rdi + 0x20], 0
add rdi, 0x30
cmp rsi, rdi
jne 0x43dc40
mov rcx, qword [rsp + 0x88]
call fcn.00436a20
mov rax, qword [rsp + 0x148]
movzx eax, word [rax + 0x18]
mov word [rsp + 0x48], ax
shr ax, 6
jmp 0x43d2d3
mov rax, qword [rsp + 0x58]
mov edi, dword [rax + 0x14]
test byte [rax + 0x1c], 0x20
mov dword [rsp + 0x60], edi
jne 0x43ecfd
mov r13, qword [rax + 8]
mov ecx, edi
mov rax, rcx
shl rax, 5
lea r14, [r13 + rax]
cmp r13, r14
mov r12d, dword [rsp + 0x60]
jae 0x43dee2
mov esi, r12d
mov qword [rsp + 0x80], rbx
jmp 0x43dd00
add r13, 0x20
cmp r13, r14
jae 0x43ded5
cmp byte [r13 + 4], 0x50
jne 0x43dcf3
mov eax, dword [r13 + 0x10]
lea edi, [rsi + 2]
add dword [rsp + 0x60], 2
mov dword [rsp + 0x70], edi
sub eax, 1
lea rbx, [rax + rax*2]
movzx eax, word [r13 + 8]
shl rbx, 4
add rbx, qword [rsp + 0x50]
test al, 4
je 0x43dea0
cmp qword [rbx + 0x10], 0
mov esi, edi
jne 0x43dcf3
mov rdx, qword [r15 + 0x40]
mov rax, qword [rdx + 0x10]
mov rdx, qword [rdx + 0x18]
sub rdx, rax
cmp rdx, 2
jbe 0x43eefc
mov byte [rax], 0x22
mov edx, dword [rbx + 0x18]
lea rsi, [rax + 1]
xor r12d, r12d
xor ebp, ebp
add rax, 2
mov dword [rsp + 0x78], 0
lea rdi, [r15 + 0x40]
mov qword [rsp + 0x98], rdi
test edx, edx
je 0x43eb95
mov qword [rsp + 0xa0], r13
mov r13, r12
mov qword [rsp + 0xa8], r14
jmp 0x43ddb7
xor r13d, r13d
mov dword [rsp + 0x78], 0
add ebp, 1
cmp dword [rbx + 0x18], ebp
jbe 0x43eb62
mov rdx, qword [rbx]
mov eax, ebp
mov rdi, qword [rdx + rax*8]
movzx eax, byte [rdi + 4]
cmp al, 0x53
je 0x43e960
cmp al, 0x3e
je 0x43de04
cmp al, 0x38
je 0x43de04
cmp al, 0x3f
je 0x43de04
cmp al, 0x39
je 0x43de04
cmp al, 0x41
je 0x43de04
cmp al, 0x3b
je 0x43de04
cmp al, 0x40
je 0x43de04
cmp al, 0x3a
je 0x43de04
cmp al, 0x42
je 0x43de04
cmp al, 0x3c
je 0x43de04
movzx ecx, al
call fcn.0042f070
test al, al
je 0x43f12c
mov rcx, rdi
call fcn.00435ec0
movzx r12d, byte [rsp + 0x90]
mov eax, eax
shl rax, 2
mov rdx, qword [r15 + 0x40]
lea r14, [rax + 3]
mov rcx, qword [rdx + 0x10]
mov rdx, qword [rdx + 0x18]
sub rdx, rsi
cmp r14, rdx
ja 0x43e740
lea rdx, [rsi - 1]
cmp rcx, rdx
je 0x43de55
test r13, r13
cmove r13, rdi
test byte [r13 + 8], 1
je 0x43de55
mov byte [rsi], 0x20
add rsi, 1
test r12b, r12b
jne 0x43e848
mov r8, rsi
mov r9d, 1
mov rdx, rdi
mov rcx, r15
call fcn.00435f70
mov rsi, rax
cmp byte [rdi + 4], 0x3d
jne 0x43dda0
mov rax, qword [rdi + 0x18]
cmp byte [rax], 0x5c
jne 0x43dda0
add dword [rsp + 0x78], 1
xor r13d, r13d
jmp 0x43ddab
test al, 8
jne 0x43e4a2
mov rax, qword [rsp + 0x58]
cmp qword [rax + 8], r13
jae 0x43debe
test byte [r13 - 0x18], 8
jne 0x43e4a2
cmp qword [rbx + 8], 0
je 0x43edc8
mov eax, dword [rbx + 0x1c]
lea esi, [rsi + rax + 1]
jmp 0x43dcf3
mov rbx, qword [rsp + 0x80]
mov ecx, esi
mov r12, rcx
movzx eax, byte [r15 + 0x495]
lea rsi, [rcx*8]
test eax, eax
mov dword [rsp + 0x80], eax
jne 0x43e61c
mov rdx, rsi
mov rcx, r15
call fcn.00436830
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x78], 0
mov r13, rax
mov rax, qword [rax + 8]
mov qword [rsp + 0xc0], rax
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
movzx eax, word [rdi + 0x18]
lea rax, [rax + rax*2]
shl rax, 4
mov eax, dword [rsi + rax - 0x18]
mov dword [rsp + 0xbc], eax
movzx eax, byte [rdi + 0x1c]
mov rdi, qword [rdi + 8]
and eax, 2
cmp rdi, r14
mov byte [rsp + 0x60], al
jae 0x43e41a
lea rax, [r15 + 0x298]
xor esi, esi
mov qword [rsp + 0x70], r14
xor ebp, ebp
mov dword [rsp + 0xb8], 0
mov r14d, esi
mov byte [rsp + 0xb7], 0
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xc8], rbx
jmp 0x43e02f
cmp ebp, 1
je 0x43e380
jle 0x43e0e0
cmp ebp, 2
je 0x43e490
cmp al, 0x26
je 0x43e600
cmp al, 0x14
je 0x43e7a4
cmp al, 0x15
jne 0x43e0c0
sub ebp, 1
cmp ebp, 2
jne 0x43e8c1
cmp byte [rsp + 0xb7], 0
je 0x43e7b4
mov r8d, dword [rdi]
lea r9, str._cannot_appear_at_either_end_of___VA_OPT__
mov rcx, r15
xor ebp, ebp
mov edx, 3
call fcn.0042db90
mov byte [rsp + 0xb7], 0
nop dword [rax + rax]
add rdi, 0x20
cmp rdi, qword [rsp + 0x70]
jae 0x43e412
cmp byte [rsp + 0x60], 0
movzx eax, byte [rdi + 4]
je 0x43e0e0
cmp al, 0x35
jne 0x43dfb0
mov rbx, qword [r15 + 0x510]
cmp qword [rdi + 0x10], rbx
je 0x43e4ae
cmp ebp, 1
je 0x43e38d
jg 0x43dfbf
movzx r12d, byte [r15 + 0x495]
cmp r12b, 1
mov eax, r14d
ja 0x43e087
mov rbx, qword [rsp + 0x58]
mov rax, rdi
sub rax, qword [rbx + 8]
sar rax, 5
mov r9d, dword [rdi]
mov dword [rsp + 0x30], eax
mov r8, rdi
mov rcx, r13
mov rax, qword [rsp + 0x78]
add r14d, 1
mov rdx, qword [rsp + 0x48]
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x28], rax
call fcn.0043c190
jmp 0x43e020
mov edx, dword [rsp + 0xbc]
mov byte [rsp + 0xb7], 0
test edx, edx
je 0x43e020
nop word [rax + rax]
cmp al, 0x50
movzx r12d, byte [r15 + 0x495]
jne 0x43e06e
mov edx, dword [rdi + 0x10]
movzx ecx, word [rdi + 8]
lea eax, [rdx - 1]
lea rax, [rax + rax*2]
shl rax, 4
add rax, qword [rsp + 0x50]
test cl, 4
je 0x43e3b3
lea ebx, [r14 + 1]
test r12b, r12b
lea rsi, [rax + 0x10]
mov dword [rsp + 0xb0], ebx
jne 0x43ea7d
mov qword [rsp + 0x90], 0
mov dword [rsp + 0xd8], 1
mov ebx, 1
cmp byte [r15 + 0x10], 0
je 0x43e15e
cmp byte [r15 + 0x11], 0
mov qword [rsp + 0x98], 0
je 0x43e1fd
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x98], 0
cmp qword [rax + 8], rdi
je 0x43e1fd
movzx ecx, word [rdi - 0x18]
and ecx, 8
jne 0x43e1fd
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x43e1a2
mov rax, qword [r13 + 0x10]
cmp qword [r13 + 8], rax
je 0x43e1a2
sub rax, 8
cmp rcx, rax
je 0x43e1fd
mov rcx, r15
call fcn.00435d80
xor r9d, r9d
mov byte [rax + 4], 0x53
mov r8, rax
mov qword [rax + 0x10], rdi
mov word [rax + 8], r9w
cmp byte [r15 + 0x495], 1
mov eax, r14d
ja 0x43e1da
mov rcx, qword [rsp + 0x58]
mov rax, rdi
sub rax, qword [rcx + 8]
sar rax, 5
mov r9d, dword [r8]
mov dword [rsp + 0x30], eax
mov rcx, r13
mov rax, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x48]
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x28], rax
call fcn.0043c190
test ebx, ebx
jne 0x43e510
cmp byte [r15 + 0x492], 0
je 0x43e320
cmp byte [r15 + 0x490], 0
jne 0x43e320
mov rax, qword [rsp + 0x58]
test byte [rax + 0x1c], 4
jne 0x43e320
mov rax, qword [r15]
test rax, rax
je 0x43e242
cmp byte [rax + 0x70], 0
jne 0x43e320
cmp byte [r15 + 0x470], 0
jne 0x43ef9f
cmp byte [r15 + 0x4be], 0
je 0x43e373
mov eax, dword [rdi + 0x10]
lea r8, str.invoking_macro__s_argument__d:_empty_macro_arguments_are_undefined_in_ISO_C90
setg dl
mov rcx, r15
movzx edx, dl
add edx, 0x15
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x148]
mov r9, qword [rax]
call fcn.0042d9f0
movzx eax, byte [r15 + 0x10]
nop dword [rax]
test al, al
jne 0x43e2f0
test byte [rdi + 8], 8
jne 0x43e2f0
mov rbx, qword [rsp + 0xa8]
test rbx, rbx
je 0x43e2ba
mov rax, qword [r13 + 0x10]
cmp qword [r13 + 8], rax
je 0x43e2ba
sub rax, 8
cmp rbx, rax
je 0x43e2f0
mov rdx, qword [rsp + 0x48]
mov dword [rsp + 0x30], 0
mov rcx, r13
mov qword [rsp + 0x28], 0
mov r9d, dword [r15 + 0x298]
mov r8, qword [rsp + 0xd0]
mov dword [rsp + 0x20], r9d
call fcn.0043c190
nop dword [rax]
mov rax, qword [rsp + 0x98]
test rax, rax
je 0x43e30c
lea r8, [rdi + 8]
mov rdx, rax
mov rcx, r15
call fcn.0043c130
mov r14d, dword [rsp + 0xb0]
jmp 0x43e020
cmp byte [r15 + 0x4be], 0
jle 0x43e373
cmp byte [r15 + 0x470], 0
jne 0x43e373
mov rax, qword [rsp + 0x58]
test byte [rax + 0x1c], 4
jne 0x43e373
mov rax, qword [r15]
test rax, rax
je 0x43e34d
cmp byte [rax + 0x70], 0
jne 0x43e373
mov eax, dword [rdi + 0x10]
lea r8, str.invoking_macro__s_argument__d:_empty_macro_arguments_are_undefined_in_ISO_C90
mov edx, 0x16
mov rcx, r15
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x148]
mov r9, qword [rax]
call fcn.0042d9c0
movzx eax, byte [r15 + 0x10]
jmp 0x43e290
cmp al, 0x14
mov ebp, 2
je 0x43e020
mov r8d, dword [rsp + 0xb8]
mov edx, 3
mov rcx, r15
mov ebp, 1
lea r9, str.__VA_OPT___must_be_followed_by_an_open_parenthesis
call fcn.0042db90
jmp 0x43e020
and ecx, 8
je 0x43e678
mov ebx, dword [rax + 0x18]
test r12b, r12b
mov qword [rsp + 0x90], 0
mov dword [rsp + 0xd8], 0
mov rsi, qword [rax]
lea ecx, [r14 + rbx]
mov dword [rsp + 0xb0], ecx
je 0x43e140
test rsi, rsi
je 0x43efdc
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x90], rax
mov dword [rsp + 0xd8], 0
jmp 0x43e140
mov rbx, qword [rsp + 0xc8]
mov rsi, qword [r13 + 0x10]
mov r11d, dword [rsp + 0x80]
sub rsi, qword [r13 + 8]
shr rsi, 3
test r11d, r11d
je 0x43e766
mov r9, qword [rsp + 0x48]
mov dword [rsp + 0x28], esi
mov r8, r13
mov rcx, r15
mov rax, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0x148]
mov qword [rsp + 0x20], rax
call fcn.0043c0a0
mov rax, qword [r13 + 0x10]
sub rax, qword [r13 + 8]
shr rax, 3
add dword [0x005c91e0], eax
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 8]
mov qword [rsp + 0x50], rax
jmp 0x43dc12
cmp al, 0x26
je 0x43ece1
mov ebp, 3
jmp 0x43dfd0
mov eax, dword [rbx + 0x18]
lea esi, [rsi + rax + 1]
jmp 0x43dcf3
test ebp, ebp
mov ebx, dword [rdi]
je 0x43e4d0
lea r9, str.__VA_OPT___may_not_appear_in_a___VA_OPT__
mov r8d, ebx
mov edx, 3
mov rcx, r15
call fcn.0042db90
jmp 0x43e020
mov rax, qword [rsp + 0x58]
cmp qword [rax + 8], rdi
je 0x43e4e5
test byte [rdi - 0x18], 8
je 0x43eaf5
mov rax, qword [r13 + 0x10]
cmp qword [r13 + 8], rax
je 0x43ecaa
sub rax, 8
mov dword [rsp + 0xb8], ebx
mov ebp, 1
mov qword [rsp + 0xa8], rax
jmp 0x43e020
lea eax, [r14 + rbx]
mov dword [rsp + 0xdc], ebp
mov rbp, rsi
mov ebx, dword [rsp + 0xd8]
mov dword [rsp + 0xa0], eax
mov esi, r14d
jmp 0x43e57d
mov rcx, qword [rsp + 0x90]
test rbp, rbp
mov r9d, dword [rcx]
je 0x43e987
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x78]
mov rcx, r13
mov dword [rsp + 0x20], edx
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov r8, qword [rbp]
call fcn.0043c190
test ebx, ebx
je 0x43e5b5
cmp ebx, 2
je 0x43e5b5
add esi, 1
cmp dword [rsp + 0xa0], esi
je 0x43e5c9
cmp dword [rsp + 0x80], 1
mov eax, r14d
cmovg eax, esi
cmp byte [r15 + 0x495], 1
ja 0x43e5a5
mov rcx, qword [rsp + 0x58]
mov rax, rdi
sub rax, qword [rcx + 8]
sar rax, 5
test r12b, r12b
mov edx, dword [rdi]
jne 0x43e531
mov rcx, qword [rbp]
mov r9d, dword [rcx]
jmp 0x43e545
add rbp, 8
test r12b, r12b
je 0x43e571
add qword [rsp + 0x90], 4
jmp 0x43e571
test byte [rdi + 8], 8
mov ebp, dword [rsp + 0xdc]
movzx eax, byte [r15 + 0x10]
je 0x43eb55
mov rax, qword [r13 + 0x10]
cmp qword [r13 + 8], rax
lea rbx, [rax - 8]
mov qword [rsp + 0x98], rbx
jne 0x43e2f0
jmp 0x43e30c
mov byte [rsp + 0xb7], 1
mov eax, dword [rsp + 0xbc]
test eax, eax
je 0x43e020
jmp 0x43e066
shl rcx, 4
call fcn.00474400
mov rdx, rsi
mov rcx, r15
mov qword [rsp + 0x48], rax
call fcn.00436830
cmp dword [rsp + 0x80], 1
mov r9d, dword [rsp + 0x60]
mov r13, rax
mov rcx, qword [r15 + 0x28]
mov rax, qword [rax + 8]
mov r8d, dword [rsp + 0x158]
cmovne r9d, r12d
mov rdx, qword [rsp + 0x148]
mov qword [rsp + 0xc0], rax
call fcn.00439dc0
mov qword [rsp + 0x78], rax
jmp 0x43df2d
mov rbx, qword [rsp + 0x58]
cmp qword [rbx + 8], rdi
je 0x43ea97
movzx ecx, word [rdi - 0x18]
test cl, 8
je 0x43ea97
test r12b, r12b
mov ebx, dword [rax + 0x18]
mov qword [rsp + 0x90], 0
mov rsi, qword [rax]
jne 0x43ef75
mov rax, qword [r13 + 0x10]
mov r9, qword [r13 + 8]
mov r8, rax
sub r8, r9
shr r8, 3
test r8d, r8d
je 0x43ec90
cmp r9, rax
je 0x49182a
mov r8, qword [rax - 8]
lea r11, [rax - 8]
mov qword [rsp + 0x98], r11
cmp byte [r8 + 4], 0x13
je 0x43efe9
test ebx, ebx
jne 0x43ec90
mov rdx, qword [rsp + 0x98]
cmp qword [rsp + 0xa8], rdx
je 0x43ec90
cmp byte [r15 + 0x10], 0
lea eax, [r14 + rbx]
mov dword [rsp + 0xd8], 0
mov dword [rsp + 0xb0], eax
je 0x43e1fd
cmp byte [r15 + 0x11], 0
jne 0x43e17d
jmp 0x43e1fd
mov rdx, qword [rsp + 0x98]
sub rsi, rcx
mov r8, r14
mov rcx, r15
call fcn.004369d0
mov rdx, qword [r15 + 0x40]
mov rcx, qword [rdx + 0x10]
add rsi, rcx
jmp 0x43de37
lea rcx, [r15 + 0x88]
mov esi, esi
call fcn.0043c030
mov rdi, qword [rsp + 0x148]
mov dword [rax + 0x30], 0
mov qword [rax + 0x20], r13
mov qword [rax + 0x28], rdi
mov rdi, qword [rsp + 0xc0]
lea rdx, [rdi + rsi*8]
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], rdx
jmp 0x43e460
add ebp, 1
mov byte [rsp + 0xb7], 0
jmp 0x43e608
mov rcx, qword [r13 + 8]
mov rdx, qword [r13 + 0x10]
movzx r9d, word [rdi + 8]
and r9d, 8
cmp rcx, rdx
je 0x43ec2b
sub rdx, 8
xor r8d, r8d
mov r10, qword [rsp + 0xa8]
jmp 0x43e7fc
mov rax, qword [r13 + 0x10]
cmp rcx, rax
jae 0x43e7f1
sub rax, 8
mov qword [r13 + 0x10], rax
lea rdx, [rax - 8]
cmp rcx, rax
cmove rdx, r8
test rdx, rdx
je 0x43ec01
cmp r10, rdx
je 0x43ec01
mov rax, qword [rdx]
cmp byte [rax + 4], 0x53
je 0x43e7e0
test r9w, r9w
je 0x43ec43
lea r8, [rdi + 8]
mov rcx, r15
xor ebp, ebp
call fcn.0043c130
mov byte [rsp + 0xb7], 0
mov qword [rsp + 0xa8], 0
jmp 0x43e020
mov rdx, r14
mov rcx, r15
call fcn.00436830
mov rdx, rdi
mov r9d, 1
mov rcx, r15
mov r14, qword [rax + 0x10]
mov r13, rax
mov r8, r14
call fcn.00435f70
sub rax, r14
lea edx, [rax - 1]
test eax, eax
je 0x43e8b1
lea rcx, [r14 + rdx + 1]
jmp 0x43e88b
lea rsi, [rdx + 1]
cmp r14, rcx
mov byte [rdx], al
je 0x43e8b1
add r14, 1
movzx eax, byte [r14 - 1]
cmp al, 0x22
je 0x43e8a8
cmp al, 0x5c
je 0x43e8a8
cmp al, 0xa
mov rdx, rsi
jne 0x43e880
mov eax, 0x6e
lea rdx, [rsi + 1]
mov byte [rsi], 0x5c
jmp 0x43e880
mov rdx, r13
mov rcx, r15
call fcn.00436810
jmp 0x43de75
mov byte [rsp + 0xb7], 0
jmp 0x43e608
mov rax, qword [r15 + 0x88]
cmp qword [rax + 8], 0
je 0x43ef8f
mov edx, 1
mov rcx, r15
call fcn.0043cf80
mov rax, qword [rsp + 0x148]
lea r8, [0x004e5550]
mov edx, 3
mov rcx, r15
mov r9, qword [rax]
call fcn.0042d990
mov rdx, qword [rsp + 0x88]
mov rcx, r15
call fcn.00436810
mov byte [r15 + 0x19], 0
sub dword [r15 + 0x1f4], 1
sub byte [r15 + 0x18], 1
cmp byte [r15 + 0x482], 0
je 0x43d5c3
mov rax, qword [rsp + 0x148]
mov rax, qword [rax + 0x20]
test byte [rax + 0x1c], 4
jne 0x43d5c3
jmp 0x43d5a4
test r13, r13
je 0x43eca1
test byte [r13 + 8], 1
jne 0x43ddab
cmp qword [rdi + 0x10], 0
mov eax, 0
cmove r13, rax
jmp 0x43ddab
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x78]
xor r8d, r8d
mov rcx, r13
mov dword [rsp + 0x20], edx
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0x28], rax
call fcn.0043c190
test ebx, ebx
je 0x43e9b6
cmp ebx, 2
jne 0x43e571
mov ebp, 8
jmp 0x43e5be
mov ebx, 0x30
mov edx, 0x1c0
jmp 0x43d771
xor edx, edx
jmp 0x43d99e
mov ecx, edi
mov edx, edi
jmp 0x43d9a0
test edi, edi
je 0x43f167
mov rax, qword [rsp + 0x58]
mov rsi, qword [rax + 8]
cmp byte [rsi + 4], 0x26
je 0x43f05c
lea r14, [rsi + 0x20]
xor r12d, r12d
mov rax, r14
add r12d, 1
cmp edi, r12d
je 0x43f167
movzx edx, byte [rax + 4]
add rax, 0x20
cmp dl, 0x26
jne 0x43ea04
cmp byte [r15 + 0x495], 0
mov edi, r12d
je 0x43d710
mov edi, r12d
mov rcx, rdi
shl rcx, 4
call fcn.00474400
lea rdx, [rdi*8]
mov rcx, r15
mov edi, r12d
mov qword [rsp + 0x48], rax
call fcn.00436830
mov rcx, qword [r15 + 0x28]
mov r9d, r12d
mov r8d, dword [rsp + 0x158]
mov rbp, rax
mov rdx, qword [rsp + 0x148]
call fcn.00439dc0
mov r13, rax
jmp 0x43d64f
test rsi, rsi
je 0x43e124
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x90], rax
jmp 0x43e130
test r12b, r12b
mov ebx, dword [rax + 0x1c]
mov qword [rsp + 0x90], 0
mov rsi, qword [rax + 8]
jne 0x43ecc7
cmp qword [rsp + 0xa8], 0
je 0x43eada
mov rax, qword [r13 + 0x10]
cmp qword [r13 + 8], rax
je 0x43eada
sub rax, 8
cmp qword [rsp + 0xa8], rax
je 0x43ef1b
mov dword [rsp + 0xd8], 2
lea eax, [r14 + rbx]
mov dword [rsp + 0xb0], eax
jmp 0x43e140
mov rcx, r15
call fcn.00435d80
xor r10d, r10d
mov edx, r14d
mov byte [rax + 4], 0x53
mov r8, rax
mov qword [rax + 0x10], rdi
mov word [rax + 8], r10w
cmp byte [r15 + 0x495], 1
ja 0x43eb2d
mov rax, qword [rsp + 0x58]
mov rdx, rdi
sub rdx, qword [rax + 8]
sar rdx, 5
mov r9d, dword [r8]
mov dword [rsp + 0x30], edx
mov rcx, r13
mov rax, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x48]
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x28], rax
call fcn.0043c190
jmp 0x43e4e5
test al, al
je 0x43e29a
jmp 0x43e2f0
test byte [rsp + 0x78], 1
lea rax, [rsi + 1]
mov r13, qword [rsp + 0xa0]
mov r14, qword [rsp + 0xa8]
je 0x43eb95
lea r8, str.invalid_string_literal__ignoring_final_
xor edx, edx
mov rcx, r15
call fcn.0042d990
mov rax, rsi
sub rsi, 1
mov byte [rsi], 0x22
mov rdx, qword [r15 + 0x40]
mov rdi, rax
add rsi, 2
mov rcx, r15
xor ebp, ebp
sub rdi, qword [rdx + 0x10]
mov qword [rdx + 0x10], rsi
sub rax, rdi
mov rsi, rax
call fcn.00435d80
mov edx, edi
mov byte [rsi + rdx], 0
mov qword [rax + 0x18], rsi
mov esi, dword [rsp + 0x70]
mov byte [rax + 4], 0x3e
mov dword [rax + 0x10], edi
mov word [rax + 8], bp
mov qword [rbx + 0x10], rax
jmp 0x43dcf3
test r9w, r9w
jne 0x43db97
mov rax, qword [rsp + 0x98]
xor esi, esi
mov r9d, dword [rax + 0x18]
test r9d, r9d
setne sil
jmp 0x43db97
test r9w, r9w
je 0x43ec43
test rdx, rdx
jne 0x43ed5f
mov qword [rsp + 0xa8], 0
xor ebp, ebp
mov byte [rsp + 0xb7], 0
jmp 0x43e020
mov qword [rsp + 0xa8], 0
xor ebp, ebp
test r9w, r9w
jne 0x43e020
mov r9d, dword [r15 + 0x298]
mov rcx, r13
xor ebp, ebp
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0xd0]
mov dword [rsp + 0x20], r9d
call fcn.0043c190
mov byte [rsp + 0xb7], 0
mov qword [rsp + 0xa8], 0
jmp 0x43e020
mov qword [rsp + 0x98], 0
jmp 0x43e70c
mov r13, qword [rdi + 0x10]
jmp 0x43ddab
mov dword [rsp + 0xb8], ebx
mov ebp, 1
mov qword [rsp + 0xa8], 0
jmp 0x43e020
test rsi, rsi
je 0x43f03b
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x90], rax
jmp 0x43eab3
mov r8d, dword [rdi]
lea r9, str._cannot_appear_at_either_end_of___VA_OPT__
mov edx, 3
mov rcx, r15
call fcn.0042db90
jmp 0x43e020
mov ecx, dword [rsp + 0x60]
test ecx, ecx
je 0x43f167
mov rax, qword [rsp + 0x58]
mov r13, qword [rax + 8]
cmp byte [r13 + 4], 0x26
je 0x43f0c6
mov edi, dword [rsp + 0x60]
lea rax, [r13 + 0x20]
mov ecx, 1
lea r8d, [rdi - 1]
add r8, 1
jmp 0x43ed37
mov rcx, rdx
cmp r8, rcx
mov r9d, ecx
je 0x43f167
lea rdx, [rcx + 1]
mov r14, rax
add rax, 0x20
cmp byte [r14 + 4], 0x26
jne 0x43ed34
mov dword [rsp + 0x60], r9d
jmp 0x43dcd8
mov rax, qword [rdx]
cmp byte [rax + 4], 0x53
jne 0x43e821
xor ebp, ebp
mov byte [rsp + 0xb7], 0
mov qword [rsp + 0xa8], 0
jmp 0x43e020
mov rdi, qword [rsp + 0x98]
mov r8d, dword [rdi + 0x18]
test r8d, r8d
jne 0x43dbdf
cmp byte [r15 + 0x491], 0
jne 0x43dbdf
mov rdi, qword [rsp + 0x98]
lea rax, [rax + rax*2]
shl rax, 4
mov qword [rdi + rax - 0x30], 0
jmp 0x43dbdf
mov edi, dword [rbx + 0x18]
test edi, edi
je 0x43dec9
cmp byte [r15 + 0x482], 0
mov ecx, 0x800
mov byte [r15 + 0x482], 0
movzx edi, byte [r15 + 0x495]
setne bpl
call fcn.00474400
mov qword [rbx + 8], rax
cmp byte [r15 + 0x495], 0
jne 0x43f119
mov eax, dword [rbx + 0x18]
test dil, dil
mov rdx, qword [rbx]
lea r12d, [rax + 1]
je 0x43f0db
mov r9, qword [rbx + 0x20]
xor r8d, r8d
mov qword [rsp + 0x20], rdx
mov rcx, r15
mov dword [rsp + 0x28], r12d
xor edx, edx
call fcn.0043c0a0
mov eax, dword [rbx + 0x1c]
mov edi, 0x100
jmp 0x43ee59
test rdx, rdx
je 0x491834
mov qword [rdx + rcx*8], rax
mov eax, dword [rbx + 0x1c]
add eax, 1
mov dword [rbx + 0x1c], eax
lea r12d, [rax + 1]
cmp r12, rdi
jbe 0x43eea2
mov rcx, qword [rbx + 8]
lea rdi, [r12 + r12]
mov rdx, r12
shl rdx, 4
call fcn.00474480
mov qword [rbx + 8], rax
cmp byte [r15 + 0x495], 0
je 0x43eea2
mov rcx, qword [rbx + 0x28]
lea rdx, [r12*8]
test rcx, rcx
je 0x43f0b5
call fcn.00474480
mov qword [rbx + 0x28], rax
mov rdx, qword [rsp + 0x48]
mov rcx, r15
call fcn.0043f180
cmp byte [rax + 4], 0x16
je 0x43f048
cmp byte [r15 + 0x495], 0
mov ecx, dword [rbx + 0x1c]
mov rdx, qword [rbx + 8]
je 0x43ee43
test rdx, rdx
je 0x491834
mov r8, qword [rbx + 0x28]
mov r9d, dword [rsp + 0xec]
mov qword [rdx + rcx*8], rax
lea r8, [r8 + rcx*4]
test r8, r8
je 0x43ee50
mov dword [r8], r9d
jmp 0x43ee50
lea rdx, [r15 + 0x40]
mov r8d, 3
mov rcx, r15
call fcn.004369d0
mov rax, qword [r15 + 0x40]
mov rax, qword [rax + 0x10]
jmp 0x43dd56
test ebx, ebx
je 0x43f14f
mov rdx, qword [rsp + 0x90]
test rsi, rsi
je 0x491820
mov rax, qword [rsi]
cmp byte [rax + 4], 0x53
jne 0x43efcf
lea rax, [rdx + 4]
add rsi, 8
test r12b, r12b
cmovne rdx, rax
sub ebx, 1
jne 0x43ef2b
mov qword [rsp + 0x90], rdx
mov dword [rsp + 0xb0], r14d
mov dword [rsp + 0xd8], 2
jmp 0x43e140
test rsi, rsi
je 0x43f0a8
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x90], rax
jmp 0x43e6af
cmp byte [r15 + 0x10], 0
je 0x43e8ed
jmp 0x43e8e0
mov eax, dword [rdi + 0x10]
lea r8, str.invoking_macro__s_argument__d:_empty_macro_arguments_are_undefined_in_ISO_C98
mov edx, 0x15
mov rcx, r15
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x148]
mov r9, qword [rax]
call fcn.0042d9f0
movzx eax, byte [r15 + 0x10]
jmp 0x43e290
mov qword [rsp + 0x90], rdx
jmp 0x43eada
mov qword [rsp + 0x90], rsi
jmp 0x43e402
mov r11, qword [rsp + 0x58]
test byte [r11 + 0x1c], 2
je 0x43e6ee
movzx r8d, word [r11 + 0x18]
cmp edx, r8d
jne 0x43e6ee
test rsi, rsi
je 0x43f016
cmp qword [rsi], 0
jne 0x43e70c
cmp r9, rax
jae 0x43ec90
lea eax, [r14 + rbx]
mov dword [rsp + 0xb0], eax
mov rax, qword [rsp + 0x98]
mov qword [r13 + 0x10], rax
jmp 0x43e402
mov qword [rsp + 0x90], rsi
jmp 0x43eab3
mov rcx, r15
call fcn.0043cde0
mov byte [r15 + 0x482], bpl
jmp 0x43dec9
xor edi, edi
cmp byte [r15 + 0x495], 0
je 0x43d710
xor ecx, ecx
xor edi, edi
call fcn.00474400
xor edx, edx
mov rcx, r15
mov qword [rsp + 0x48], rax
call fcn.00436830
mov rcx, qword [r15 + 0x28]
xor r9d, r9d
mov r8d, dword [rsp + 0x158]
mov rbp, rax
mov rdx, qword [rsp + 0x148]
call fcn.00439dc0
jmp 0x43d68d
mov qword [rsp + 0x90], rsi
jmp 0x43e6af
mov rcx, rdx
call fcn.00474400
mov qword [rbx + 0x28], rax
jmp 0x43eea2
mov r14, r13
xor ecx, ecx
mov dword [rsp + 0x60], 0
xor r12d, r12d
jmp 0x43dee2
lea rcx, [r15 + 0x88]
mov qword [rsp + 0x70], rdx
call fcn.0043c030
mov rdx, qword [rsp + 0x70]
mov dword [rax + 0x30], 0
mov qword [rax + 0x28], 0
mov qword [rax + 0x20], 0
mov qword [rax + 0x10], rdx
lea rdx, [rdx + r12*8]
mov qword [rax + 0x18], rdx
jmp 0x43ee39
mov ecx, 0x400
call fcn.00474400
mov qword [rbx + 0x28], rax
jmp 0x43ee0b
movzx ecx, byte [rdi + 4]
call fcn.0042f080
mov rcx, rdi
test al, al
mov r12d, eax
jne 0x43de07
call fcn.00435ec0
mov eax, eax
jmp 0x43de1b
mov dword [rsp + 0xb0], r14d
mov dword [rsp + 0xd8], 2
jmp 0x43e140
lea r8, str.macro_real_token_count
mov edx, 0x4dc
lea rcx, str..._.._.._.._src_gcc_8.1.0_libcpp_macro.c
call fcn.00490e20
nop
movzx eax, byte [4]
ud2
mov rax, qword [pe_dos_header]
ud2
mov qword [0], rax
ud2
mov qword [0], r8
ud2
mov qword [0], r9
ud2