Function at 0x4300b0
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, 0x108
mov byte [rcx + 0x13], 0
movzx eax, byte [rdx + 0x18]
mov r14, rcx
mov qword [rsp + 0x158], rdx
mov qword [rsp + 0x160], r8
mov dword [rsp + 0x168], r9d
mov byte [rcx + 0x1b0], 0
mov byte [rcx + 0xc0], 1
mov byte [rsp + 0x48], al
and eax, 3
cmp al, 2
je 0x430170
mov rdx, qword [rcx + 0xb8]
mov byte [rcx + 0xc0], 0
movzx eax, byte [rdx + 0x18]
and eax, 3
cmp al, 2
je 0x430150
mov r9d, dword [r14 + 0xb0]
mov r8d, dword [rsp + 0x168]
mov rdx, qword [rsp + 0x158]
mov rcx, r14
call fcn.00432930
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rdx + 0x20]
test byte [rax + 0x14], 4
je 0x430118
cmp byte [rcx + 0x45d], 0
mov r9d, dword [rsp + 0x168]
jne 0x43011f
jmp 0x430118
mov rax, qword [rdx + 0x20]
xor r15d, r15d
test byte [rax + 0x14], 4
mov qword [rsp + 0x50], rax
jne 0x430390
mov rax, qword [rsp + 0x158]
mov rdi, qword [rsp + 0x158]
movzx eax, word [rax + 0x18]
mov ecx, eax
and ax, 0xfc03
shr cx, 2
mov edx, ecx
or edx, 0x10
movzx edx, dl
shl edx, 2
or eax, edx
and ecx, 0x20
mov word [rdi + 0x18], ax
je 0x430460
mov rax, qword [r14 + 0x3d8]
test rax, rax
je 0x4301de
mov r8, qword [rsp + 0x158]
mov edx, dword [rsp + 0x168]
mov rcx, r14
call rax
mov rdi, qword [rsp + 0x50]
movzx eax, byte [rdi + 0x14]
mov byte [rsp + 0x48], al
or eax, 0x20
cmp word [rdi + 0x10], 0
mov byte [rdi + 0x14], al
jne 0x4302c7
test al, 0x40
mov ebx, dword [rdi + 0xc]
movzx edx, byte [r14 + 0x45d]
jne 0x430487
add rdi, 0x18
test dl, dl
mov r12, rdi
je 0x4304c0
mov esi, ebx
mov rcx, rsi
shl rcx, 4
call fcn.0044fcd6
lea rdx, [rsi*8]
mov rcx, r14
mov rdi, rax
call fcn.00429b90
mov rcx, qword [r14 + 0x28]
mov r8d, dword [rsp + 0x168]
mov r9d, ebx
mov rdx, qword [rsp + 0x158]
mov rsi, rax
call fcn.0042d1c0
test ebx, ebx
mov rbp, rax
je 0x43029e
xor r13d, r13d
nop dword [rax + rax]
mov r9d, dword [r12]
mov r8, r12
mov dword [rsp + 0x30], r13d
mov qword [rsp + 0x28], rbp
mov rdx, rdi
mov rcx, rsi
add r13d, 1
add r12, 0x18
mov dword [rsp + 0x20], r9d
call fcn.0042f630
cmp r13d, ebx
jb 0x430270
mov dword [rsp + 0x28], ebx
mov rax, qword [rsi + 8]
mov r9, rdi
mov rdx, qword [rsp + 0x158]
mov r8, rsi
mov rcx, r14
mov qword [rsp + 0x20], rax
call fcn.0042f530
add dword [0x0048e5f0], ebx
test r15, r15
je 0x430475
cmp byte [r14 + 0x10], 0
je 0x430350
lea rbp, [r14 + 0x88]
nop
mov rsi, qword [r15 + 8]
mov rbx, qword [r15 + 0x10]
mov rcx, rbp
mov rdi, qword [r15]
mov qword [r15], 0
call fcn.0042f4c0
sub rbx, rsi
mov dword [rax + 0x30], 0
mov qword [rax + 0x28], 0
sar rbx, 3
mov qword [rax + 0x20], r15
mov qword [rax + 0x10], rsi
mov edx, ebx
lea rdx, [rsi + rdx*8]
mov qword [rax + 0x18], rdx
cmp byte [r14 + 0x45d], 0
jne 0x430332
add dword [0x0048e5f0], ebx
test rdi, rdi
mov r15, rdi
jne 0x4302e0
mov byte [r14 + 0xc0], 0
mov eax, 2
jmp 0x430137
mov rcx, r14
call fcn.004290a0
mov r8, rax
mov byte [rax + 4], 0x54
mov rax, qword [rsp + 0x160]
mov r9d, 1
xor edx, edx
mov rcx, r14
mov qword [r8 + 8], rax
xor eax, eax
mov word [r8 + 6], ax
call fcn.0042f8d0
jmp 0x4302d7
add byte [rcx + 0x18], 1
add dword [rcx + 0x1ec], 1
xor ebx, ebx
mov byte [rcx + 0x19], 1
xor edx, edx
mov rcx, r14
call fcn.00431d10
movzx edx, byte [rax + 4]
cmp dl, 0x54
jne 0x4303d5
test rbx, rbx
je 0x4303d0
test byte [rbx + 6], 1
jne 0x4303a1
cmp qword [rax + 8], 0
cmove rbx, rax
jmp 0x4303a1
mov rbx, rax
jmp 0x4303a1
cmp dl, 0x14
je 0x4304ff
cmp dl, 0x16
jne 0x4303ef
lea rdx, [r14 + 0x280]
cmp rax, rdx
jne 0x430414
mov edx, 1
mov rcx, r14
call fcn.0042fb30
test rbx, rbx
je 0x430414
mov r9d, 1
mov r8, rbx
xor edx, edx
mov rcx, r14
call fcn.0042f8d0
sub dword [r14 + 0x1ec], 1
sub byte [r14 + 0x18], 1
cmp byte [r14 + 0x44a], 0
mov byte [r14 + 0x19], 0
je 0x430450
mov rax, qword [rsp + 0x158]
mov rax, qword [rax + 0x20]
test byte [rax + 0x14], 0x10
je 0x4304db
nop word cs:[rax + rax]
mov byte [r14 + 0xc0], 0
xor eax, eax
jmp 0x430137
mov rdx, qword [rsp + 0x158]
mov rcx, r14
call fcn.00430010
jmp 0x4301be
mov byte [r14 + 0xc0], 0
mov eax, 1
jmp 0x430137
mov r8, qword [rsp + 0x50]
jmp 0x4304a4
mov eax, ecx
lea rax, [rax + rax*2]
cmp byte [r8 + rax*8 + 0x1c], 0x27
jne 0x431674
mov ebx, ecx
test ebx, ebx
lea ecx, [rbx - 1]
jne 0x430490
test dl, dl
jne 0x4318cb
mov r12, qword [rsp + 0x50]
add r12, 0x18
nop dword [rax]
mov rdx, qword [rsp + 0x158]
mov r9d, ebx
mov r8, r12
mov rcx, r14
call fcn.0042f8d0
jmp 0x4302c1
mov rax, qword [rsp + 0x158]
lea r8, str.function_like_macro___s__must_be_used_with_arguments_in_traditional_C
mov edx, 6
mov rcx, r14
mov r9, qword [rax]
call fcn.00420180
jmp 0x430450
movzx eax, byte [r14 + 0x45d]
mov byte [r14 + 0x19], 2
mov byte [rsp + 0x80], al
mov rax, qword [rsp + 0x158]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x60], rax
movzx eax, word [rax + 0x10]
test ax, ax
je 0x4314bb
lea rdx, [rax*8]
lea rbx, [rax + rax*2]
sub rdx, rax
shl rbx, 4
shl rdx, 6
mov rcx, r14
call fcn.00429b90
mov rdi, qword [rax + 8]
xor edx, edx
mov r8, rbx
mov rsi, rax
mov qword [rsp + 0x78], rax
mov rbp, rsi
mov rcx, rdi
mov qword [rsp + 0x88], rdi
call sub.msvcrt.dll_memset
cmp byte [rsp + 0x80], 0
lea rax, [rdi + rbx]
mov dword [rsp + 0xb8], 0
mov qword [rsi + 0x10], rax
lea rsi, [rsp + 0xfc]
setne byte [rsp + 0x58]
mov qword [rsp + 0x48], rsi
xor r15d, r15d
mov esi, dword [rsp + 0xb8]
mov qword [rdi], rax
add esi, 1
cmp byte [rsp + 0x80], 0
mov dword [rsp + 0x5c], esi
jne 0x430930
mov r12d, 0x32
xor ebx, ebx
xor r13d, r13d
mov esi, 2
jmp 0x4305e8
test rax, rax
je 0x4306d0
mov qword [rax + rcx*8], rdx
add ebx, 1
lea esi, [rbx + 2]
mov edx, esi
lea rax, [rax + rdx*8]
cmp qword [rbp + 0x18], rax
jb 0x4306b0
cmp esi, r12d
jbe 0x430608
cmp byte [rsp + 0x58], 0
jne 0x4306f0
mov rdx, qword [rsp + 0x48]
mov rcx, r14
call fcn.00431d10
mov rdx, rax
movzx eax, byte [rax + 4]
cmp al, 0x54
je 0x430690
cmp al, 0x14
je 0x4306e0
cmp al, 0x15
je 0x430711
cmp al, 0x13
je 0x430725
cmp al, 0x16
je 0x430950
cmp al, 0x26
je 0x430801
cmp al, 0x52
je 0x430813
mov rax, qword [rdi]
cmp byte [r14 + 0x45d], 0
mov ecx, ebx
je 0x4305d5
test rax, rax
je 0x4306d0
mov r8, qword [rdi + 0x20]
mov r9d, dword [rsp + 0xfc]
mov qword [rax + rcx*8], rdx
lea r8, [r8 + rcx*4]
test r8, r8
je 0x4305e2
mov dword [r8], r9d
jmp 0x4305e2
test ebx, ebx
mov rax, qword [rdi]
jne 0x430653
mov edx, esi
lea rax, [rax + rdx*8]
cmp qword [rbp + 0x18], rax
jae 0x4305f8
nop word [rax + rax]
mov rdx, rbp
mov r8d, 0x1f40
mov rcx, r14
call fcn.00429c30
mov rbp, rax
mov rax, qword [rax + 0x10]
mov qword [rdi], rax
jmp 0x4305f8
mov qword [0], rdx
ud2
add r13d, 1
mov rax, qword [rdi]
jmp 0x430653
lea edx, [r12 + 0x3e8]
mov rcx, qword [rdi + 0x20]
mov r12, rdx
shl rdx, 2
call fcn.0044fd7c
mov qword [rdi + 0x20], rax
jmp 0x430608
test r13d, r13d
lea ecx, [r13 - 1]
mov rax, qword [rdi]
je 0x43074a
mov r13d, ecx
jmp 0x430653
test r13d, r13d
mov rax, qword [rdi]
jne 0x430653
mov rsi, qword [rsp + 0x60]
test byte [rsi + 0x14], 8
je 0x43074a
movzx ecx, word [rsi + 0x10]
cmp dword [rsp + 0x5c], ecx
je 0x430653
mov r8, rdx
test ebx, ebx
je 0x4314b4
lea ecx, [rbx - 1]
mov rdx, rcx
mov rcx, qword [rax + rcx*8]
cmp byte [rcx + 4], 0x54
je 0x430788
jmp 0x43160a
lea r9d, [rdx - 1]
mov rcx, r9
mov r9, qword [rax + r9*8]
cmp byte [r9 + 4], 0x54
jne 0x430929
mov edx, ecx
test edx, edx
jne 0x430770
xor ecx, ecx
mov dword [rdi + 0x18], edx
cmp byte [r14 + 0x45d], 0
lea r9, [r14 + 0x280]
jne 0x430900
test rax, rax
je 0x430946
mov qword [rax + rcx*8], r9
mov rsi, qword [rsp + 0x60]
movzx ecx, word [rsi + 0x10]
mov esi, dword [rsp + 0x5c]
cmp esi, ecx
mov r9d, ecx
ja 0x4307dc
add edx, 1
cmp esi, ecx
lea rax, [rax + rdx*8]
mov qword [rbp + 0x10], rax
lea rax, [rdi + 0x30]
cmovne rdi, rax
movzx eax, byte [r8 + 4]
lea edx, [rax - 0x15]
cmp dl, 1
jbe 0x43095b
mov esi, dword [rsp + 0x5c]
mov rax, qword [rbp + 0x10]
mov dword [rsp + 0xb8], esi
jmp 0x4305a4
test byte [rdx + 6], 0x40
mov rax, qword [rdi]
je 0x430653
jmp 0x43074a
mov rcx, r14
mov qword [rsp + 0x68], rdx
call fcn.004290a0
mov rdx, qword [rsp + 0x68]
mov r8, rax
mov qword [rsp + 0x68], rdi
mov dword [rsp + 0x70], ebx
mov rdi, r15
mov rbx, qword [rsp + 0x48]
mov r15d, esi
mov rsi, r8
mov r9, qword [rdx]
mov r10, qword [rdx + 8]
mov qword [rax], r9
mov qword [rax + 8], r10
mov rax, qword [rdx + 0x10]
mov qword [r8 + 0x10], rax
jmp 0x4308af
mov rdx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
sub rax, rdx
cmp rax, 7
ja 0x43088a
sub rdx, qword [rdi + 8]
mov rcx, r14
add rdx, rdx
call fcn.00429b90
mov rdx, qword [rax + 0x10]
mov qword [rax], rdi
mov rdi, rax
mov qword [rdx], rsi
add rdx, 8
cmp byte [rsi + 4], 0x53
mov qword [rdi + 0x10], rdx
je 0x4308d0
mov rdx, rbx
mov rcx, r14
call fcn.00431d10
cmp byte [rax + 4], 0x16
mov rsi, rax
je 0x4308d0
test rdi, rdi
jne 0x430860
mov edx, 0x100
mov rcx, r14
call fcn.00429b90
mov rdi, rax
mov rdx, qword [rax + 0x10]
jmp 0x43088a
mov r8, rsi
mov eax, 0x201
mov esi, r15d
mov word [r14 + 0x18], ax
cmp byte [r8 + 4], 0x16
mov r15, rdi
mov rdi, qword [rsp + 0x68]
mov ebx, dword [rsp + 0x70]
mov rax, qword [rdi]
je 0x43074d
jmp 0x4305e8
test rax, rax
je 0x430946
mov r10, qword [rdi + 0x20]
mov r11d, dword [r14 + 0x280]
mov qword [rax + rcx*8], r9
lea r10, [r10 + rcx*4]
test r10, r10
je 0x4307b3
mov dword [r10], r11d
jmp 0x4307b3
mov ecx, edx
jmp 0x43078e
mov ecx, 0xc8
call fcn.0044fcd6
mov qword [rdi + 0x20], rax
mov rax, qword [rdi]
jmp 0x4305c3
mov qword [0], r9
ud2
mov rax, qword [rdi]
mov r8, rdx
jmp 0x43074d
cmp al, 0x16
je 0x4319a5
mov eax, dword [rsp + 0x5c]
cmp eax, 1
mov ebx, eax
je 0x431744
mov rdi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x158]
mov r9d, ebx
mov rcx, r14
mov rdx, rdi
call fcn.0042f7c0
test al, al
mov byte [rsp + 0x90], al
je 0x4319e3
test byte [rdi + 0x14], 8
je 0x4309ba
movzx edx, word [rdi + 0x10]
cmp ebx, edx
mov rax, rdx
jb 0x4318ad
cmp ebx, 1
je 0x43188c
mov rax, qword [rsp + 0x78]
sub byte [r14 + 0x18], 1
mov byte [r14 + 0x19], 0
sub dword [r14 + 0x1ec], 1
mov r13, qword [rax + 8]
mov rax, qword [rsp + 0x50]
cmp word [rax + 0x10], 0
jne 0x430a59
mov edx, dword [rsp + 0x5c]
test edx, edx
je 0x430a4a
mov eax, dword [rsp + 0xb8]
lea rsi, [r13 + 8]
lea rax, [rax + rax*2]
shl rax, 4
lea rbx, [r13 + rax + 0x38]
mov rcx, qword [rsi]
test rcx, rcx
je 0x430a15
call fcn.004689a0
mov qword [rsi], 0
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x430a2b
call fcn.004689a0
mov qword [rsi + 0x18], 0
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x430a41
call fcn.004689a0
mov qword [rsi + 0x20], 0
add rsi, 0x30
cmp rbx, rsi
jne 0x430a01
mov rcx, qword [rsp + 0x78]
call fcn.00429d70
jmp 0x430186
mov rax, qword [rsp + 0x50]
test byte [rax + 0x14], 0x40
mov edi, dword [rax + 0xc]
mov dword [rsp + 0x58], edi
jne 0x431961
mov ecx, dword [rsp + 0x58]
mov rax, qword [rsp + 0x50]
lea rbp, [rax + 0x18]
lea rax, [rcx + rcx*2]
mov rsi, rcx
mov qword [rsp + 0x68], rbp
lea rax, [rbp + rax*8]
cmp rbp, rax
mov qword [rsp + 0x48], rax
jae 0x431bc2
mov qword [rsp + 0x80], r15
mov qword [rsp + 0x60], r13
mov r15, rax
mov r13, rbp
jmp 0x430abd
add r13, 0x18
cmp r15, r13
jbe 0x430ced
cmp byte [r13 + 4], 0x51
jne 0x430ab0
mov eax, dword [r13 + 8]
lea edi, [rsi + 2]
add dword [rsp + 0x58], 2
mov dword [rsp + 0x70], edi
sub eax, 1
lea rbx, [rax + rax*2]
movzx eax, word [r13 + 6]
shl rbx, 4
add rbx, qword [rsp + 0x60]
test al, 4
je 0x430cbc
cmp qword [rbx + 0x10], 0
mov esi, edi
jne 0x430ab0
mov rdx, qword [r14 + 0x40]
mov rax, qword [rdx + 0x10]
mov rdx, qword [rdx + 0x18]
sub rdx, rax
cmp rdx, 2
ja 0x430b29
lea rdx, [r14 + 0x40]
mov r8d, 3
mov rcx, r14
call fcn.00429d20
mov rax, qword [r14 + 0x40]
mov rax, qword [rax + 0x10]
mov byte [rax], 0x22
mov edi, dword [rbx + 0x18]
lea rsi, [rax + 1]
test edi, edi
je 0x4317c8
lea rax, [r14 + 0x40]
xor edi, edi
mov qword [rsp + 0xa0], r13
xor ebp, ebp
xor r12d, r12d
mov qword [rsp + 0x98], r15
mov qword [rsp + 0x88], rax
mov r13d, edi
jmp 0x430b97
mov r8, rsi
mov r9d, 1
mov rdx, rdi
mov rcx, r14
call fcn.004292b0
mov rsi, rax
cmp byte [rdi + 4], 0x3e
je 0x4316dd
xor ebp, ebp
xor r13d, r13d
add r12d, 1
cmp dword [rbx + 0x18], r12d
jbe 0x43179c
mov rdx, qword [rbx]
mov eax, r12d
mov rdi, qword [rdx + rax*8]
movzx eax, byte [rdi + 4]
cmp al, 0x54
je 0x431779
cmp al, 0x3f
je 0x430be5
cmp al, 0x39
je 0x430be5
cmp al, 0x40
je 0x430be5
cmp al, 0x3a
je 0x430be5
cmp al, 0x42
je 0x430be5
cmp al, 0x3c
je 0x430be5
cmp al, 0x41
je 0x430be5
cmp al, 0x3b
je 0x430be5
cmp al, 0x43
je 0x430be5
cmp al, 0x3d
je 0x430be5
movzx ecx, al
call fcn.00421770
test al, al
je 0x431ce4
mov rcx, rdi
call fcn.00429200
movzx r15d, byte [rsp + 0x90]
mov eax, eax
shl rax, 2
mov rdx, qword [r14 + 0x40]
add rax, 3
mov rcx, qword [rdx + 0x10]
mov rdx, qword [rdx + 0x18]
sub rdx, rsi
cmp rax, rdx
ja 0x43170e
lea rdx, [rsi - 1]
cmp rcx, rdx
je 0x430c35
test rbp, rbp
cmove rbp, rdi
test byte [rbp + 6], 1
je 0x430c35
mov byte [rsi], 0x20
add rsi, 1
test r15b, r15b
je 0x430b63
mov rdx, rax
mov rcx, r14
call fcn.00429b90
mov rbp, qword [rax + 0x10]
mov rdx, rdi
mov r9d, 1
mov rcx, r14
mov qword [rsp + 0xa8], rax
mov r8, rbp
call fcn.004292b0
sub rax, rbp
mov r10, qword [rsp + 0xa8]
test eax, eax
lea edx, [rax - 1]
je 0x4316cd
mov eax, edx
lea rcx, [rbp + rax + 1]
jmp 0x430c97
cmp rbp, rcx
lea rsi, [rdx + 1]
mov byte [rdx], al
je 0x4316cd
add rbp, 1
movzx eax, byte [rbp - 1]
cmp al, 0x22
je 0x430cb3
cmp al, 0x5c
je 0x430cb3
cmp al, 0xa
mov rdx, rsi
jne 0x430c88
mov eax, 0x6e
lea rdx, [rsi + 1]
mov byte [rsi], 0x5c
jmp 0x430c88
test al, 8
jne 0x4312fe
cmp qword [rsp + 0x68], r13
je 0x430cd6
test byte [r13 - 0x12], 8
jne 0x4312fe
cmp qword [rbx + 8], 0
je 0x431c00
mov eax, dword [rbx + 0x1c]
lea esi, [rsi + rax + 1]
jmp 0x430ab0
mov ecx, esi
mov r15, qword [rsp + 0x80]
mov r13, qword [rsp + 0x60]
lea rbx, [rcx*8]
movzx eax, byte [r14 + 0x45d]
test eax, eax
mov dword [rsp + 0x88], eax
jne 0x43130a
mov rdx, rbx
mov rcx, r14
call fcn.00429b90
mov r12, rax
mov rax, qword [rax + 8]
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x70], 0
mov qword [rsp + 0xc8], rax
mov rdi, qword [rsp + 0x50]
movzx eax, word [rdi + 0x10]
lea rax, [rax + rax*2]
shl rax, 4
lea rax, [r13 + rax - 0x30]
mov qword [rsp + 0xd0], rax
movzx eax, byte [rdi + 0x14]
mov rdi, qword [rsp + 0x48]
and eax, 8
mov byte [rsp + 0x58], al
mov rax, qword [rsp + 0x68]
cmp rax, rdi
jae 0x431159
mov rbx, rax
lea rax, [r14 + 0x268]
mov dword [rsp + 0xa0], 0
mov dword [rsp + 0xe8], 0
xor esi, esi
mov byte [rsp + 0xa8], 0
xor ebp, ebp
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xd8], r15
mov qword [rsp + 0xc0], r13
jmp 0x430e78
cmp al, 0x36
je 0x4310ad
cmp esi, 1
je 0x43122e
jle 0x430e87
cmp esi, 2
je 0x4310d2
cmp al, 0x27
jne 0x4310df
mov byte [rsp + 0xa8], 1
cmp dword [rsp + 0xa0], 2
jne 0x431105
movzx r13d, byte [r14 + 0x45d]
cmp r13b, 1
mov eax, ebp
ja 0x430e40
mov rax, rbx
sub rax, qword [rsp + 0x68]
sar rax, 3
imul eax, eax, 0xaaaaaaab
mov r9d, dword [rbx]
mov dword [rsp + 0x30], eax
mov r8, rbx
mov rax, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x60]
mov rcx, r12
add ebp, 1
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x28], rax
call fcn.0042f630
add rbx, 0x18
cmp rbx, qword [rsp + 0x48]
jae 0x431151
cmp byte [rsp + 0x58], 0
movzx eax, byte [rbx + 4]
jne 0x430de0
cmp al, 0x51
movzx r13d, byte [r14 + 0x45d]
jne 0x430e26
mov edx, dword [rbx + 8]
movzx ecx, word [rbx + 6]
lea eax, [rdx - 1]
lea rax, [rax + rax*2]
shl rax, 4
add rax, qword [rsp + 0xc0]
test cl, 4
je 0x4312cf
xor r11d, r11d
test r13b, r13b
lea r15, [rax + 0x10]
jne 0x431767
mov r10d, 1
mov edi, 1
cmp byte [r14 + 0x10], 0
je 0x430eef
cmp byte [r14 + 0x11], 0
mov qword [rsp + 0x90], 0
je 0x430fd5
cmp rbx, qword [rsp + 0x68]
mov qword [rsp + 0x90], 0
je 0x430fd5
movzx ecx, word [rbx - 0x12]
and ecx, 8
jne 0x430fd5
mov rcx, qword [rsp + 0x98]
test rcx, rcx
je 0x430f39
mov rax, qword [r12 + 0x10]
cmp qword [r12 + 8], rax
je 0x430f39
sub rax, 8
cmp rcx, rax
je 0x430fd5
mov rcx, r14
mov qword [rsp + 0xb0], r11
mov dword [rsp + 0x80], r10d
call fcn.004290a0
xor r9d, r9d
mov byte [rax + 4], 0x54
mov qword [rax + 8], rbx
mov word [rax + 6], r9w
cmp byte [r14 + 0x45d], 1
mov r8, rax
mov edx, ebp
mov r10d, dword [rsp + 0x80]
mov r11, qword [rsp + 0xb0]
ja 0x430f92
mov rdx, rbx
sub rdx, qword [rsp + 0x68]
sar rdx, 3
imul edx, edx, 0xaaaaaaab
mov r9d, dword [r8]
mov rax, qword [rsp + 0x70]
mov rcx, r12
mov dword [rsp + 0x30], edx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0xb0], r11
mov dword [rsp + 0x80], r10d
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r9d
call fcn.0042f630
mov r10d, dword [rsp + 0x80]
mov r11, qword [rsp + 0xb0]
test edi, edi
jne 0x43138c
cmp byte [r14 + 0x45a], 0
je 0x4311d1
cmp byte [r14 + 0x458], 0
jne 0x4311d1
mov rax, qword [rsp + 0x50]
test byte [rax + 0x14], 0x10
jne 0x4311d1
mov rax, qword [r14]
test rax, rax
je 0x43101a
cmp byte [rax + 0x69], 0
jne 0x4311d1
cmp byte [r14 + 0x438], 0
jne 0x431c8f
cmp byte [r14 + 0x48e], 0
je 0x431224
mov rdi, qword [rsp + 0x158]
mov eax, dword [rbx + 8]
setg dl
movzx edx, dl
lea r8, str.invoking_macro__s_argument__d:_empty_macro_arguments_are_undefined_in_ISO_C90
mov rcx, r14
add edx, 0x15
mov rdi, qword [rdi]
mov dword [rsp + 0x20], eax
mov r9, rdi
mov qword [rsp + 0x80], rdi
call fcn.004201b0
movzx eax, byte [r14 + 0x10]
test al, al
mov dword [rsp + 0x80], ebp
jne 0x431085
test byte [rbx + 6], 8
je 0x431506
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x4310a1
lea r8, [rbx + 6]
mov rdx, rax
mov rcx, r14
call fcn.0042f5c0
mov ebp, dword [rsp + 0x80]
jmp 0x430e69
mov rdi, qword [r14 + 0x4f0]
cmp qword [rbx + 8], rdi
je 0x4314da
cmp esi, 1
je 0x431366
jg 0x430df7
jmp 0x430e1e
cmp al, 0x27
je 0x431945
mov esi, 3
cmp al, 0x14
je 0x4314ca
cmp al, 0x15
je 0x4316f5
cmp dword [rsp + 0xa0], 2
mov byte [rsp + 0xa8], 0
je 0x430e87
cmp dword [rsp + 0xa0], 3
jne 0x430e69
cmp rbx, qword [rsp + 0x68]
je 0x431124
test byte [rbx - 0x12], 8
je 0x431613
mov rax, qword [r12 + 0x10]
cmp qword [r12 + 8], rax
mov qword [rsp + 0x98], 0
je 0x430e69
sub rax, 8
mov qword [rsp + 0x98], rax
jmp 0x430e69
mov r15, qword [rsp + 0xd8]
mov rbx, qword [r12 + 0x10]
sub rbx, qword [r12 + 8]
mov ecx, dword [rsp + 0x88]
shr rbx, 3
test ecx, ecx
jne 0x431486
lea rcx, [r14 + 0x88]
mov ebx, ebx
call fcn.0042f4c0
mov rdi, qword [rsp + 0x158]
mov dword [rax + 0x30], 0
mov qword [rax + 0x20], r12
mov qword [rax + 0x28], rdi
mov rdi, qword [rsp + 0xc8]
lea rdx, [rdi + rbx*8]
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], rdx
mov rax, qword [r12 + 0x10]
sub rax, qword [r12 + 8]
shr rax, 3
add dword [0x0048e5f0], eax
mov rax, qword [rsp + 0x78]
mov r13, qword [rax + 8]
jmp 0x4309e1
cmp byte [r14 + 0x48e], 0
jle 0x431224
cmp byte [r14 + 0x438], 0
jne 0x431224
mov rax, qword [rsp + 0x50]
test byte [rax + 0x14], 0x10
jne 0x431224
mov rax, qword [r14]
test rax, rax
je 0x4311fe
cmp byte [rax + 0x69], 0
jne 0x431224
mov eax, dword [rbx + 8]
lea r8, str.invoking_macro__s_argument__d:_empty_macro_arguments_are_undefined_in_ISO_C90
mov edx, 0x16
mov rcx, r14
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x158]
mov r9, qword [rax]
call fcn.00420180
movzx eax, byte [r14 + 0x10]
jmp 0x431070
cmp al, 0x14
jne 0x431366
mov r11d, dword [rsp + 0xa0]
mov esi, 2
test r11d, r11d
jne 0x430e69
mov rax, qword [rsp + 0xd0]
mov dword [rsp + 0xa0], 2
test rax, rax
je 0x430e69
cmp qword [rax + 8], 0
je 0x431c10
mov rax, qword [rsp + 0xd0]
mov edx, dword [rax + 0x1c]
test edx, edx
je 0x431cbf
mov rax, qword [rax + 8]
mov rcx, qword [rax]
cmp byte [rcx + 4], 0x54
jne 0x43191e
add rax, 8
sub edx, 1
lea rcx, [rax + rdx*8]
jmp 0x4312b5
mov rdx, qword [rax]
add rax, 8
cmp byte [rdx + 4], 0x54
jne 0x43191e
cmp rcx, rax
jne 0x4312a4
mov esi, 2
mov dword [rsp + 0xa0], 1
jmp 0x430e69
and ecx, 8
je 0x431563
xor r11d, r11d
xor r10d, r10d
test r13b, r13b
mov edi, dword [rax + 0x18]
mov r15, qword [rax]
je 0x430ed1
test r15, r15
je 0x4312f6
mov r11, qword [rax + 0x20]
xor r10d, r10d
jmp 0x430ed1
mov eax, dword [rbx + 0x18]
lea esi, [rsi + rax + 1]
jmp 0x430ab0
shl rcx, 4
call fcn.0044fcd6
mov rdx, rbx
mov rcx, r14
mov qword [rsp + 0x60], rax
call fcn.00429b90
cmp dword [rsp + 0x88], 1
mov r9d, dword [rsp + 0x58]
mov r12, rax
mov rcx, qword [r14 + 0x28]
mov rax, qword [rax + 8]
mov r8d, dword [rsp + 0x168]
mov rdx, qword [rsp + 0x158]
cmovne r9d, esi
mov qword [rsp + 0xc8], rax
call fcn.0042d1c0
mov qword [rsp + 0x70], rax
jmp 0x430d47
mov r8d, dword [rsp + 0xe8]
lea r9, str.__VA_OPT___must_be_followed_by_an_open_parenthesis
mov edx, 3
mov rcx, r14
mov esi, 1
call fcn.00420350
jmp 0x430e69
mov rax, rbx
sub rax, qword [rsp + 0x68]
mov dword [rsp + 0xec], esi
mov dword [rsp + 0xbc], ebp
mov rsi, rbx
mov rbx, r11
sar rax, 3
imul eax, eax, 0xaaaaaaab
mov dword [rsp + 0xb0], eax
lea eax, [rdi + rbp]
mov edi, r10d
mov dword [rsp + 0x80], eax
jmp 0x43140a
xor r8d, r8d
test r15, r15
mov r9d, dword [rbx]
je 0x4313d6
mov r8, qword [r15]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x70]
mov rcx, r12
mov dword [rsp + 0x20], edx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x28], rax
call fcn.0042f630
test edi, edi
je 0x43143b
cmp edi, 2
je 0x43143b
add ebp, 1
cmp dword [rsp + 0x80], ebp
je 0x43144c
cmp dword [rsp + 0x88], 1
mov eax, dword [rsp + 0xbc]
mov edx, dword [rsi]
cmovg eax, ebp
cmp byte [r14 + 0x45d], 1
cmovbe eax, dword [rsp + 0xb0]
test r13b, r13b
jne 0x4313c8
mov r8, qword [r15]
mov r9d, dword [r8]
jmp 0x4313d6
lea rax, [rbx + 4]
add r15, 8
test r13b, r13b
cmovne rbx, rax
jmp 0x4313fe
mov rbx, rsi
movzx eax, byte [r14 + 0x10]
mov esi, dword [rsp + 0xec]
test byte [rbx + 6], 8
je 0x4314fe
mov rax, qword [r12 + 0x10]
cmp qword [r12 + 8], rax
je 0x4310a1
sub rax, 8
mov qword [rsp + 0x90], rax
jmp 0x431085
mov rax, qword [rsp + 0xc8]
mov r9, qword [rsp + 0x60]
mov r8, r12
mov rdx, qword [rsp + 0x158]
mov dword [rsp + 0x28], ebx
mov rcx, r14
mov qword [rsp + 0x20], rax
call fcn.0042f530
jmp 0x4311af
xor edx, edx
jmp 0x43078c
mov ebx, 0x30
mov edx, 0x1c0
jmp 0x430548
add esi, 1
mov byte [rsp + 0xa8], 0
jmp 0x430e10
test esi, esi
mov r8d, dword [rbx]
je 0x431933
lea r9, str.__VA_OPT___may_not_appear_in_a___VA_OPT__
mov edx, 3
mov rcx, r14
call fcn.00420350
jmp 0x430e69
test al, al
jne 0x431085
mov rdi, qword [rsp + 0x98]
test rdi, rdi
je 0x43152c
mov rax, qword [r12 + 0x10]
cmp qword [r12 + 8], rax
je 0x43152c
sub rax, 8
cmp rdi, rax
je 0x431085
mov r9d, dword [r14 + 0x268]
mov r8, qword [rsp + 0xe0]
mov rcx, r12
mov rdx, qword [rsp + 0x60]
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], r9d
call fcn.0042f630
jmp 0x431085
cmp rbx, qword [rsp + 0x68]
je 0x431814
movzx ecx, word [rbx - 0x12]
test cl, 8
je 0x431814
xor r11d, r11d
test r13b, r13b
mov edi, dword [rax + 0x18]
mov r15, qword [rax]
jne 0x431bd3
mov rax, qword [r12 + 0x10]
mov r8, qword [r12 + 8]
mov r9, rax
sub r9, r8
shr r9, 3
test r9d, r9d
je 0x43190d
cmp r8, rax
je 0x431a56
mov r9, qword [rax - 8]
lea r10, [rax - 8]
mov qword [rsp + 0x90], r10
cmp byte [r9 + 4], 0x13
je 0x431c20
test edi, edi
jne 0x43190d
mov rdx, qword [rsp + 0x98]
cmp qword [rsp + 0x90], rdx
je 0x43190d
xor r10d, r10d
cmp byte [r14 + 0x10], 0
je 0x430fd5
cmp byte [r14 + 0x11], 0
je 0x430fd5
jmp 0x430f0a
mov ecx, ebx
mov edx, ebx
jmp 0x43078e
mov rcx, r14
call fcn.004290a0
xor r10d, r10d
mov byte [rax + 4], 0x54
mov qword [rax + 8], rbx
mov word [rax + 6], r10w
cmp byte [r14 + 0x45d], 1
mov r8, rax
mov edx, ebp
ja 0x43164c
mov rdx, rbx
sub rdx, qword [rsp + 0x68]
sar rdx, 3
imul edx, edx, 0xaaaaaaab
mov r9d, dword [r8]
mov rax, qword [rsp + 0x70]
mov rcx, r12
mov dword [rsp + 0x30], edx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r9d
call fcn.0042f630
jmp 0x431124
mov r12, qword [rsp + 0x50]
add r12, 0x18
test dl, dl
je 0x4304c0
mov esi, ebx
mov rcx, rsi
shl rcx, 4
call fcn.0044fcd6
lea rdx, [rsi*8]
mov rcx, r14
mov rdi, rax
call fcn.00429b90
mov rcx, qword [r14 + 0x28]
mov r8d, dword [rsp + 0x168]
mov r9d, ebx
mov rdx, qword [rsp + 0x158]
mov rsi, rax
call fcn.0042d1c0
mov rbp, rax
jmp 0x430265
mov rdx, r10
mov rcx, r14
call fcn.00429b70
jmp 0x430b7a
mov rax, qword [rdi + 0x10]
add r13d, 1
xor ebp, ebp
cmp byte [rax], 0x5c
jne 0x430b84
jmp 0x430b89
sub esi, 1
cmp esi, 2
je 0x431a60
mov byte [rsp + 0xa8], 0
jmp 0x430e10
mov rdx, qword [rsp + 0x88]
sub rsi, rcx
mov r8, rax
mov rcx, r14
mov qword [rsp + 0xa8], rax
call fcn.00429d20
mov rdx, qword [r14 + 0x40]
mov rax, qword [rsp + 0xa8]
mov rcx, qword [rdx + 0x10]
add rsi, rcx
jmp 0x430c18
test r9w, r9w
jne 0x430972
mov rax, qword [rsp + 0x88]
xor ebx, ebx
mov r12d, dword [rax + 0x18]
test r12d, r12d
setne bl
jmp 0x430972
test r15, r15
je 0x430ec6
mov r11, qword [rax + 0x10]
jmp 0x430ec6
test rbp, rbp
je 0x431793
test byte [rbp + 6], 1
jne 0x430b89
cmp qword [rdi + 8], 0
jne 0x430b89
mov rbp, qword [rdi + 8]
jmp 0x430b89
mov eax, r13d
mov r15, qword [rsp + 0x98]
mov r13, qword [rsp + 0xa0]
test al, 1
je 0x4317c8
lea r8, str.invalid_string_literal__ignoring_final_
xor edx, edx
mov rcx, r14
sub rsi, 1
call fcn.00420150
mov byte [rsi], 0x22
mov rdx, qword [r14 + 0x40]
lea rax, [rsi + 1]
add rsi, 2
mov rcx, r14
mov rdi, rax
sub rdi, qword [rdx + 0x10]
mov qword [rdx + 0x10], rsi
sub rax, rdi
mov rsi, rax
call fcn.004290a0
mov edx, edi
mov byte [rsi + rdx], 0
mov qword [rax + 0x10], rsi
xor esi, esi
mov word [rax + 6], si
mov byte [rax + 4], 0x3f
mov dword [rax + 8], edi
mov esi, dword [rsp + 0x70]
mov qword [rbx + 0x10], rax
jmp 0x430ab0
xor r11d, r11d
test r13b, r13b
mov edi, dword [rax + 0x1c]
mov r15, qword [rax + 8]
jne 0x431be5
mov rcx, qword [rsp + 0x98]
test rcx, rcx
je 0x431881
mov rax, qword [r12 + 0x10]
cmp qword [r12 + 8], rax
je 0x431881
sub rax, 8
mov r10d, 2
cmp rcx, rax
jne 0x430ed1
test edi, edi
je 0x430ed1
test r15, r15
je 0x431903
mov rax, qword [r15]
cmp byte [rax + 4], 0x54
jne 0x431881
lea rax, [r11 + 4]
add r15, 8
test r13b, r13b
cmovne r11, rax
sub edi, 1
jne 0x43185b
mov r10d, 2
jmp 0x430ed1
mov rdi, qword [rsp + 0x88]
mov ebp, dword [rdi + 0x18]
test ebp, ebp
jne 0x4309ba
cmp byte [r14 + 0x459], 0
jne 0x4309ba
lea rax, [rax + rax*2]
mov rdi, qword [rsp + 0x88]
shl rax, 4
mov qword [rdi + rax - 0x30], 0
jmp 0x4309ba
xor ecx, ecx
call fcn.0044fcd6
xor edx, edx
mov rcx, r14
mov rdi, rax
call fcn.00429b90
mov rcx, qword [r14 + 0x28]
mov r8d, dword [rsp + 0x168]
xor r9d, r9d
mov rdx, qword [rsp + 0x158]
mov rsi, rax
call fcn.0042d1c0
jmp 0x43029e
movzx eax, byte [4]
ud2
mov qword [rsp + 0x90], 0
jmp 0x4315ec
mov dword [rsp + 0xa0], 2
mov esi, 2
jmp 0x430e69
mov dword [rsp + 0xe8], r8d
mov esi, 1
jmp 0x431113
mov r8d, dword [rbx]
lea r9, str._cannot_appear_at_either_end_of___VA_OPT__
mov edx, 3
mov rcx, r14
call fcn.00420350
jmp 0x430e69
mov r8, rax
mov eax, edi
jmp 0x43197c
mov ecx, edx
lea rcx, [rcx + rcx*2]
cmp byte [r8 + rcx*8 + 0x1c], 0x27
jne 0x431bf7
mov eax, edx
test eax, eax
lea edx, [rax - 1]
jne 0x431968
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x50]
xor esi, esi
xor ebx, ebx
xor ecx, ecx
add rax, 0x18
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x48], rax
jmp 0x430d04
mov rax, qword [r14 + 0x88]
cmp qword [rax + 8], 0
je 0x431cd4
mov edx, 1
mov rcx, r14
call fcn.0042fb30
mov rax, qword [rsp + 0x158]
lea r8, [0x0047b328]
mov edx, 3
mov rcx, r14
mov r9, qword [rax]
call fcn.00420150
mov rdx, qword [rsp + 0x78]
mov rcx, r14
call fcn.00429b70
sub dword [r14 + 0x1ec], 1
sub byte [r14 + 0x18], 1
cmp byte [r14 + 0x44a], 0
mov byte [r14 + 0x19], 0
je 0x431a3d
mov rax, qword [rsp + 0x158]
mov rax, qword [rax + 0x20]
test byte [rax + 0x14], 0x10
jne 0x431a3d
mov rax, qword [rsp + 0x158]
lea r8, str.function_like_macro___s__must_be_used_with_arguments_in_traditional_C
mov edx, 6
mov rcx, r14
mov r9, qword [rax]
call fcn.00420180
test r15, r15
je 0x430450
mov rdx, r15
mov rcx, r14
call fcn.00429b70
jmp 0x430450
mov rax, qword [pe_dos_header]
ud2
cmp byte [rsp + 0xa8], 0
je 0x431a90
mov r8d, dword [rbx]
lea r9, str._cannot_appear_at_either_end_of___VA_OPT__
mov edx, 3
mov rcx, r14
xor esi, esi
call fcn.00420350
mov byte [rsp + 0xa8], 0
jmp 0x430e69
movzx r9d, word [rbx + 6]
mov rcx, qword [r12 + 8]
mov rdx, qword [r12 + 0x10]
and r9d, 8
cmp rcx, rdx
je 0x431b26
sub rdx, 8
xor r8d, r8d
mov r10, qword [rsp + 0x98]
jmp 0x431ade
mov rax, qword [r12 + 0x10]
cmp rcx, rax
jae 0x431ad3
sub rax, 8
mov qword [r12 + 0x10], rax
lea rdx, [rax - 8]
cmp rcx, rax
cmove rdx, r8
test rdx, rdx
je 0x431b8b
cmp rdx, r10
je 0x431b8b
mov rax, qword [rdx]
cmp byte [rax + 4], 0x54
je 0x431ac0
test r9w, r9w
je 0x431b3e
lea r8, [rbx + 6]
mov rcx, r14
xor esi, esi
call fcn.0042f5c0
mov byte [rsp + 0xa8], 0
mov qword [rsp + 0x98], 0
jmp 0x430e69
xor esi, esi
test r9w, r9w
mov qword [rsp + 0x98], 0
jne 0x430e69
mov r9d, dword [r14 + 0x268]
mov r8, qword [rsp + 0xe0]
mov rcx, r12
mov rdx, qword [rsp + 0x60]
mov dword [rsp + 0x30], 0
xor esi, esi
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], r9d
call fcn.0042f630
mov byte [rsp + 0xa8], 0
mov qword [rsp + 0x98], 0
jmp 0x430e69
test r9w, r9w
je 0x431b3e
test rdx, rdx
je 0x431c74
mov rax, qword [rdx]
cmp byte [rax + 4], 0x54
jne 0x431aff
xor esi, esi
mov byte [rsp + 0xa8], 0
mov qword [rsp + 0x98], 0
jmp 0x430e69
lea rbx, [rcx*8]
mov esi, dword [rsp + 0x58]
jmp 0x430d04
test r15, r15
je 0x43158d
mov r11, qword [rax + 0x20]
jmp 0x43158d
test r15, r15
je 0x431827
mov r11, qword [rax + 0x28]
jmp 0x431827
mov dword [rsp + 0x58], eax
jmp 0x430a6f
mov rdx, rbx
mov rcx, r14
call fcn.00432b60
jmp 0x430ce1
mov rdx, rax
mov rcx, r14
call fcn.00432b60
jmp 0x431273
mov r10, qword [rsp + 0x50]
test byte [r10 + 0x14], 8
je 0x4315ce
movzx r9d, word [r10 + 0x10]
cmp edx, r9d
jne 0x4315ce
test r15, r15
je 0x431c4d
cmp qword [r15], 0
jne 0x4315ec
cmp r8, rax
jae 0x43190d
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x90], 0
mov qword [r12 + 0x10], rax
jmp 0x4315ec
mov qword [rsp + 0x98], 0
xor esi, esi
mov byte [rsp + 0xa8], 0
jmp 0x430e69
mov eax, dword [rbx + 8]
lea r8, str.invoking_macro__s_argument__d:_empty_macro_arguments_are_undefined_in_ISO_C98
mov edx, 0x15
mov rcx, r14
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x158]
mov r9, qword [rax]
call fcn.004201b0
movzx eax, byte [r14 + 0x10]
jmp 0x431070
mov dword [rsp + 0xa0], 1
mov esi, 2
jmp 0x430e69
cmp byte [r14 + 0x10], 0
je 0x4319c4
jmp 0x4319b7
movzx ecx, byte [rdi + 4]
call fcn.00421780
test al, al
mov r15d, eax
mov rcx, rdi
jne 0x430be8
call fcn.00429200
mov eax, eax
jmp 0x430bfc