Function at 0x44f310
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 0x44f3d0
mov rdx, qword [rcx + 0xb8]
mov byte [rcx + 0xc0], 0
movzx eax, byte [rdx + 0x18]
and eax, 3
cmp al, 2
je 0x44f3b0
mov r9d, dword [r14 + 0xb0]
mov r8d, dword [rsp + 0x168]
mov rdx, qword [rsp + 0x158]
mov rcx, r14
call fcn.00451b90
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 0x44f378
cmp byte [rcx + 0x45d], 0
mov r9d, dword [rsp + 0x168]
jne 0x44f37f
jmp 0x44f378
mov rax, qword [rdx + 0x20]
xor r15d, r15d
test byte [rax + 0x14], 4
mov qword [rsp + 0x50], rax
jne 0x44f5f0
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 0x44f6c0
mov rax, qword [r14 + 0x3d8]
test rax, rax
je 0x44f43e
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 0x44f527
test al, 0x40
mov ebx, dword [rdi + 0xc]
movzx edx, byte [r14 + 0x45d]
jne 0x44f6e7
add rdi, 0x18
test dl, dl
mov r12, rdi
je 0x44f720
mov esi, ebx
mov rcx, rsi
shl rcx, 4
call fcn.0047c0a6
lea rdx, [rsi*8]
mov rcx, r14
mov rdi, rax
call fcn.00448df0
mov rcx, qword [r14 + 0x28]
mov r8d, dword [rsp + 0x168]
mov r9d, ebx
mov rdx, qword [rsp + 0x158]
mov rsi, rax
call fcn.0044c420
test ebx, ebx
mov rbp, rax
je 0x44f4fe
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.0044e890
cmp r13d, ebx
jb 0x44f4d0
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.0044e790
add dword [0x00512fd0], ebx
test r15, r15
je 0x44f6d5
cmp byte [r14 + 0x10], 0
je 0x44f5b0
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.0044e720
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 0x44f592
add dword [0x00512fd0], ebx
test rdi, rdi
mov r15, rdi
jne 0x44f540
mov byte [r14 + 0xc0], 0
mov eax, 2
jmp 0x44f397
mov rcx, r14
call fcn.00448300
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.0044eb30
jmp 0x44f537
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.00450f70
movzx edx, byte [rax + 4]
cmp dl, 0x54
jne 0x44f635
test rbx, rbx
je 0x44f630
test byte [rbx + 6], 1
jne 0x44f601
cmp qword [rax + 8], 0
cmove rbx, rax
jmp 0x44f601
mov rbx, rax
jmp 0x44f601
cmp dl, 0x14
je 0x44f75f
cmp dl, 0x16
jne 0x44f64f
lea rdx, [r14 + 0x280]
cmp rax, rdx
jne 0x44f674
mov edx, 1
mov rcx, r14
call fcn.0044ed90
test rbx, rbx
je 0x44f674
mov r9d, 1
mov r8, rbx
xor edx, edx
mov rcx, r14
call fcn.0044eb30
sub dword [r14 + 0x1ec], 1
sub byte [r14 + 0x18], 1
cmp byte [r14 + 0x44a], 0
mov byte [r14 + 0x19], 0
je 0x44f6b0
mov rax, qword [rsp + 0x158]
mov rax, qword [rax + 0x20]
test byte [rax + 0x14], 0x10
je 0x44f73b
nop word cs:[rax + rax]
mov byte [r14 + 0xc0], 0
xor eax, eax
jmp 0x44f397
mov rdx, qword [rsp + 0x158]
mov rcx, r14
call fcn.0044f270
jmp 0x44f41e
mov byte [r14 + 0xc0], 0
mov eax, 1
jmp 0x44f397
mov r8, qword [rsp + 0x50]
jmp 0x44f704
mov eax, ecx
lea rax, [rax + rax*2]
cmp byte [r8 + rax*8 + 0x1c], 0x27
jne 0x4508d4
mov ebx, ecx
test ebx, ebx
lea ecx, [rbx - 1]
jne 0x44f6f0
test dl, dl
jne 0x450b2b
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.0044eb30
jmp 0x44f521
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.0043f3e0
jmp 0x44f6b0
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 0x45071b
lea rdx, [rax*8]
lea rbx, [rax + rax*2]
sub rdx, rax
shl rbx, 4
shl rdx, 6
mov rcx, r14
call fcn.00448df0
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 0x44fb90
mov r12d, 0x32
xor ebx, ebx
xor r13d, r13d
mov esi, 2
jmp 0x44f848
test rax, rax
je 0x44f930
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 0x44f910
cmp esi, r12d
jbe 0x44f868
cmp byte [rsp + 0x58], 0
jne 0x44f950
mov rdx, qword [rsp + 0x48]
mov rcx, r14
call fcn.00450f70
mov rdx, rax
movzx eax, byte [rax + 4]
cmp al, 0x54
je 0x44f8f0
cmp al, 0x14
je 0x44f940
cmp al, 0x15
je 0x44f971
cmp al, 0x13
je 0x44f985
cmp al, 0x16
je 0x44fbb0
cmp al, 0x26
je 0x44fa61
cmp al, 0x52
je 0x44fa73
mov rax, qword [rdi]
cmp byte [r14 + 0x45d], 0
mov ecx, ebx
je 0x44f835
test rax, rax
je 0x44f930
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 0x44f842
mov dword [r8], r9d
jmp 0x44f842
test ebx, ebx
mov rax, qword [rdi]
jne 0x44f8b3
mov edx, esi
lea rax, [rax + rdx*8]
cmp qword [rbp + 0x18], rax
jae 0x44f858
nop word [rax + rax]
mov rdx, rbp
mov r8d, 0x1f40
mov rcx, r14
call fcn.00448e90
mov rbp, rax
mov rax, qword [rax + 0x10]
mov qword [rdi], rax
jmp 0x44f858
mov qword [0], rdx
ud2
add r13d, 1
mov rax, qword [rdi]
jmp 0x44f8b3
lea edx, [r12 + 0x3e8]
mov rcx, qword [rdi + 0x20]
mov r12, rdx
shl rdx, 2
call fcn.0047c14c
mov qword [rdi + 0x20], rax
jmp 0x44f868
test r13d, r13d
lea ecx, [r13 - 1]
mov rax, qword [rdi]
je 0x44f9aa
mov r13d, ecx
jmp 0x44f8b3
test r13d, r13d
mov rax, qword [rdi]
jne 0x44f8b3
mov rsi, qword [rsp + 0x60]
test byte [rsi + 0x14], 8
je 0x44f9aa
movzx ecx, word [rsi + 0x10]
cmp dword [rsp + 0x5c], ecx
je 0x44f8b3
mov r8, rdx
test ebx, ebx
je 0x450714
lea ecx, [rbx - 1]
mov rdx, rcx
mov rcx, qword [rax + rcx*8]
cmp byte [rcx + 4], 0x54
je 0x44f9e8
jmp 0x45086a
lea r9d, [rdx - 1]
mov rcx, r9
mov r9, qword [rax + r9*8]
cmp byte [r9 + 4], 0x54
jne 0x44fb89
mov edx, ecx
test edx, edx
jne 0x44f9d0
xor ecx, ecx
mov dword [rdi + 0x18], edx
cmp byte [r14 + 0x45d], 0
lea r9, [r14 + 0x280]
jne 0x44fb60
test rax, rax
je 0x44fba6
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 0x44fa3c
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 0x44fbbb
mov esi, dword [rsp + 0x5c]
mov rax, qword [rbp + 0x10]
mov dword [rsp + 0xb8], esi
jmp 0x44f804
test byte [rdx + 6], 0x40
mov rax, qword [rdi]
je 0x44f8b3
jmp 0x44f9aa
mov rcx, r14
mov qword [rsp + 0x68], rdx
call fcn.00448300
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 0x44fb0f
mov rdx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
sub rax, rdx
cmp rax, 7
ja 0x44faea
sub rdx, qword [rdi + 8]
mov rcx, r14
add rdx, rdx
call fcn.00448df0
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 0x44fb30
mov rdx, rbx
mov rcx, r14
call fcn.00450f70
cmp byte [rax + 4], 0x16
mov rsi, rax
je 0x44fb30
test rdi, rdi
jne 0x44fac0
mov edx, 0x100
mov rcx, r14
call fcn.00448df0
mov rdi, rax
mov rdx, qword [rax + 0x10]
jmp 0x44faea
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 0x44f9ad
jmp 0x44f848
test rax, rax
je 0x44fba6
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 0x44fa13
mov dword [r10], r11d
jmp 0x44fa13
mov ecx, edx
jmp 0x44f9ee
mov ecx, 0xc8
call fcn.0047c0a6
mov qword [rdi + 0x20], rax
mov rax, qword [rdi]
jmp 0x44f823
mov qword [0], r9
ud2
mov rax, qword [rdi]
mov r8, rdx
jmp 0x44f9ad
cmp al, 0x16
je 0x450c05
mov eax, dword [rsp + 0x5c]
cmp eax, 1
mov ebx, eax
je 0x4509a4
mov rdi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x158]
mov r9d, ebx
mov rcx, r14
mov rdx, rdi
call fcn.0044ea20
test al, al
mov byte [rsp + 0x90], al
je 0x450c43
test byte [rdi + 0x14], 8
je 0x44fc1a
movzx edx, word [rdi + 0x10]
cmp ebx, edx
mov rax, rdx
jb 0x450b0d
cmp ebx, 1
je 0x450aec
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 0x44fcb9
mov edx, dword [rsp + 0x5c]
test edx, edx
je 0x44fcaa
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 0x44fc75
call fcn.00494cb8
mov qword [rsi], 0
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x44fc8b
call fcn.00494cb8
mov qword [rsi + 0x18], 0
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x44fca1
call fcn.00494cb8
mov qword [rsi + 0x20], 0
add rsi, 0x30
cmp rbx, rsi
jne 0x44fc61
mov rcx, qword [rsp + 0x78]
call fcn.00448fd0
jmp 0x44f3e6
mov rax, qword [rsp + 0x50]
test byte [rax + 0x14], 0x40
mov edi, dword [rax + 0xc]
mov dword [rsp + 0x58], edi
jne 0x450bc1
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 0x450e22
mov qword [rsp + 0x80], r15
mov qword [rsp + 0x60], r13
mov r15, rax
mov r13, rbp
jmp 0x44fd1d
add r13, 0x18
cmp r15, r13
jbe 0x44ff4d
cmp byte [r13 + 4], 0x51
jne 0x44fd10
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 0x44ff1c
cmp qword [rbx + 0x10], 0
mov esi, edi
jne 0x44fd10
mov rdx, qword [r14 + 0x40]
mov rax, qword [rdx + 0x10]
mov rdx, qword [rdx + 0x18]
sub rdx, rax
cmp rdx, 2
ja 0x44fd89
lea rdx, [r14 + 0x40]
mov r8d, 3
mov rcx, r14
call fcn.00448f80
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 0x450a28
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 0x44fdf7
mov r8, rsi
mov r9d, 1
mov rdx, rdi
mov rcx, r14
call fcn.00448510
mov rsi, rax
cmp byte [rdi + 4], 0x3e
je 0x45093d
xor ebp, ebp
xor r13d, r13d
add r12d, 1
cmp dword [rbx + 0x18], r12d
jbe 0x4509fc
mov rdx, qword [rbx]
mov eax, r12d
mov rdi, qword [rdx + rax*8]
movzx eax, byte [rdi + 4]
cmp al, 0x54
je 0x4509d9
cmp al, 0x3f
je 0x44fe45
cmp al, 0x39
je 0x44fe45
cmp al, 0x40
je 0x44fe45
cmp al, 0x3a
je 0x44fe45
cmp al, 0x42
je 0x44fe45
cmp al, 0x3c
je 0x44fe45
cmp al, 0x41
je 0x44fe45
cmp al, 0x3b
je 0x44fe45
cmp al, 0x43
je 0x44fe45
cmp al, 0x3d
je 0x44fe45
movzx ecx, al
call fcn.004409d0
test al, al
je 0x450f44
mov rcx, rdi
call fcn.00448460
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 0x45096e
lea rdx, [rsi - 1]
cmp rcx, rdx
je 0x44fe95
test rbp, rbp
cmove rbp, rdi
test byte [rbp + 6], 1
je 0x44fe95
mov byte [rsi], 0x20
add rsi, 1
test r15b, r15b
je 0x44fdc3
mov rdx, rax
mov rcx, r14
call fcn.00448df0
mov rbp, qword [rax + 0x10]
mov rdx, rdi
mov r9d, 1
mov rcx, r14
mov qword [rsp + 0xa8], rax
mov r8, rbp
call fcn.00448510
sub rax, rbp
mov r10, qword [rsp + 0xa8]
test eax, eax
lea edx, [rax - 1]
je 0x45092d
mov eax, edx
lea rcx, [rbp + rax + 1]
jmp 0x44fef7
cmp rbp, rcx
lea rsi, [rdx + 1]
mov byte [rdx], al
je 0x45092d
add rbp, 1
movzx eax, byte [rbp - 1]
cmp al, 0x22
je 0x44ff13
cmp al, 0x5c
je 0x44ff13
cmp al, 0xa
mov rdx, rsi
jne 0x44fee8
mov eax, 0x6e
lea rdx, [rsi + 1]
mov byte [rsi], 0x5c
jmp 0x44fee8
test al, 8
jne 0x45055e
cmp qword [rsp + 0x68], r13
je 0x44ff36
test byte [r13 - 0x12], 8
jne 0x45055e
cmp qword [rbx + 8], 0
je 0x450e60
mov eax, dword [rbx + 0x1c]
lea esi, [rsi + rax + 1]
jmp 0x44fd10
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 0x45056a
mov rdx, rbx
mov rcx, r14
call fcn.00448df0
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 0x4503b9
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 0x4500d8
cmp al, 0x36
je 0x45030d
cmp esi, 1
je 0x45048e
jle 0x4500e7
cmp esi, 2
je 0x450332
cmp al, 0x27
jne 0x45033f
mov byte [rsp + 0xa8], 1
cmp dword [rsp + 0xa0], 2
jne 0x450365
movzx r13d, byte [r14 + 0x45d]
cmp r13b, 1
mov eax, ebp
ja 0x4500a0
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.0044e890
add rbx, 0x18
cmp rbx, qword [rsp + 0x48]
jae 0x4503b1
cmp byte [rsp + 0x58], 0
movzx eax, byte [rbx + 4]
jne 0x450040
cmp al, 0x51
movzx r13d, byte [r14 + 0x45d]
jne 0x450086
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 0x45052f
xor r11d, r11d
test r13b, r13b
lea r15, [rax + 0x10]
jne 0x4509c7
mov r10d, 1
mov edi, 1
cmp byte [r14 + 0x10], 0
je 0x45014f
cmp byte [r14 + 0x11], 0
mov qword [rsp + 0x90], 0
je 0x450235
cmp rbx, qword [rsp + 0x68]
mov qword [rsp + 0x90], 0
je 0x450235
movzx ecx, word [rbx - 0x12]
and ecx, 8
jne 0x450235
mov rcx, qword [rsp + 0x98]
test rcx, rcx
je 0x450199
mov rax, qword [r12 + 0x10]
cmp qword [r12 + 8], rax
je 0x450199
sub rax, 8
cmp rcx, rax
je 0x450235
mov rcx, r14
mov qword [rsp + 0xb0], r11
mov dword [rsp + 0x80], r10d
call fcn.00448300
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 0x4501f2
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.0044e890
mov r10d, dword [rsp + 0x80]
mov r11, qword [rsp + 0xb0]
test edi, edi
jne 0x4505ec
cmp byte [r14 + 0x45a], 0
je 0x450431
cmp byte [r14 + 0x458], 0
jne 0x450431
mov rax, qword [rsp + 0x50]
test byte [rax + 0x14], 0x10
jne 0x450431
mov rax, qword [r14]
test rax, rax
je 0x45027a
cmp byte [rax + 0x69], 0
jne 0x450431
cmp byte [r14 + 0x438], 0
jne 0x450eef
cmp byte [r14 + 0x48e], 0
je 0x450484
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.0043f410
movzx eax, byte [r14 + 0x10]
test al, al
mov dword [rsp + 0x80], ebp
jne 0x4502e5
test byte [rbx + 6], 8
je 0x450766
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x450301
lea r8, [rbx + 6]
mov rdx, rax
mov rcx, r14
call fcn.0044e820
mov ebp, dword [rsp + 0x80]
jmp 0x4500c9
mov rdi, qword [r14 + 0x4f0]
cmp qword [rbx + 8], rdi
je 0x45073a
cmp esi, 1
je 0x4505c6
jg 0x450057
jmp 0x45007e
cmp al, 0x27
je 0x450ba5
mov esi, 3
cmp al, 0x14
je 0x45072a
cmp al, 0x15
je 0x450955
cmp dword [rsp + 0xa0], 2
mov byte [rsp + 0xa8], 0
je 0x4500e7
cmp dword [rsp + 0xa0], 3
jne 0x4500c9
cmp rbx, qword [rsp + 0x68]
je 0x450384
test byte [rbx - 0x12], 8
je 0x450873
mov rax, qword [r12 + 0x10]
cmp qword [r12 + 8], rax
mov qword [rsp + 0x98], 0
je 0x4500c9
sub rax, 8
mov qword [rsp + 0x98], rax
jmp 0x4500c9
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 0x4506e6
lea rcx, [r14 + 0x88]
mov ebx, ebx
call fcn.0044e720
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 [0x00512fd0], eax
mov rax, qword [rsp + 0x78]
mov r13, qword [rax + 8]
jmp 0x44fc41
cmp byte [r14 + 0x48e], 0
jle 0x450484
cmp byte [r14 + 0x438], 0
jne 0x450484
mov rax, qword [rsp + 0x50]
test byte [rax + 0x14], 0x10
jne 0x450484
mov rax, qword [r14]
test rax, rax
je 0x45045e
cmp byte [rax + 0x69], 0
jne 0x450484
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.0043f3e0
movzx eax, byte [r14 + 0x10]
jmp 0x4502d0
cmp al, 0x14
jne 0x4505c6
mov r11d, dword [rsp + 0xa0]
mov esi, 2
test r11d, r11d
jne 0x4500c9
mov rax, qword [rsp + 0xd0]
mov dword [rsp + 0xa0], 2
test rax, rax
je 0x4500c9
cmp qword [rax + 8], 0
je 0x450e70
mov rax, qword [rsp + 0xd0]
mov edx, dword [rax + 0x1c]
test edx, edx
je 0x450f1f
mov rax, qword [rax + 8]
mov rcx, qword [rax]
cmp byte [rcx + 4], 0x54
jne 0x450b7e
add rax, 8
sub edx, 1
lea rcx, [rax + rdx*8]
jmp 0x450515
mov rdx, qword [rax]
add rax, 8
cmp byte [rdx + 4], 0x54
jne 0x450b7e
cmp rcx, rax
jne 0x450504
mov esi, 2
mov dword [rsp + 0xa0], 1
jmp 0x4500c9
and ecx, 8
je 0x4507c3
xor r11d, r11d
xor r10d, r10d
test r13b, r13b
mov edi, dword [rax + 0x18]
mov r15, qword [rax]
je 0x450131
test r15, r15
je 0x450556
mov r11, qword [rax + 0x20]
xor r10d, r10d
jmp 0x450131
mov eax, dword [rbx + 0x18]
lea esi, [rsi + rax + 1]
jmp 0x44fd10
shl rcx, 4
call fcn.0047c0a6
mov rdx, rbx
mov rcx, r14
mov qword [rsp + 0x60], rax
call fcn.00448df0
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.0044c420
mov qword [rsp + 0x70], rax
jmp 0x44ffa7
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.0043f5b0
jmp 0x4500c9
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 0x45066a
xor r8d, r8d
test r15, r15
mov r9d, dword [rbx]
je 0x450636
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.0044e890
test edi, edi
je 0x45069b
cmp edi, 2
je 0x45069b
add ebp, 1
cmp dword [rsp + 0x80], ebp
je 0x4506ac
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 0x450628
mov r8, qword [r15]
mov r9d, dword [r8]
jmp 0x450636
lea rax, [rbx + 4]
add r15, 8
test r13b, r13b
cmovne rbx, rax
jmp 0x45065e
mov rbx, rsi
movzx eax, byte [r14 + 0x10]
mov esi, dword [rsp + 0xec]
test byte [rbx + 6], 8
je 0x45075e
mov rax, qword [r12 + 0x10]
cmp qword [r12 + 8], rax
je 0x450301
sub rax, 8
mov qword [rsp + 0x90], rax
jmp 0x4502e5
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.0044e790
jmp 0x45040f
xor edx, edx
jmp 0x44f9ec
mov ebx, 0x30
mov edx, 0x1c0
jmp 0x44f7a8
add esi, 1
mov byte [rsp + 0xa8], 0
jmp 0x450070
test esi, esi
mov r8d, dword [rbx]
je 0x450b93
lea r9, str.__VA_OPT___may_not_appear_in_a___VA_OPT__
mov edx, 3
mov rcx, r14
call fcn.0043f5b0
jmp 0x4500c9
test al, al
jne 0x4502e5
mov rdi, qword [rsp + 0x98]
test rdi, rdi
je 0x45078c
mov rax, qword [r12 + 0x10]
cmp qword [r12 + 8], rax
je 0x45078c
sub rax, 8
cmp rdi, rax
je 0x4502e5
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.0044e890
jmp 0x4502e5
cmp rbx, qword [rsp + 0x68]
je 0x450a74
movzx ecx, word [rbx - 0x12]
test cl, 8
je 0x450a74
xor r11d, r11d
test r13b, r13b
mov edi, dword [rax + 0x18]
mov r15, qword [rax]
jne 0x450e33
mov rax, qword [r12 + 0x10]
mov r8, qword [r12 + 8]
mov r9, rax
sub r9, r8
shr r9, 3
test r9d, r9d
je 0x450b6d
cmp r8, rax
je 0x450cb6
mov r9, qword [rax - 8]
lea r10, [rax - 8]
mov qword [rsp + 0x90], r10
cmp byte [r9 + 4], 0x13
je 0x450e80
test edi, edi
jne 0x450b6d
mov rdx, qword [rsp + 0x98]
cmp qword [rsp + 0x90], rdx
je 0x450b6d
xor r10d, r10d
cmp byte [r14 + 0x10], 0
je 0x450235
cmp byte [r14 + 0x11], 0
je 0x450235
jmp 0x45016a
mov ecx, ebx
mov edx, ebx
jmp 0x44f9ee
mov rcx, r14
call fcn.00448300
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 0x4508ac
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.0044e890
jmp 0x450384
mov r12, qword [rsp + 0x50]
add r12, 0x18
test dl, dl
je 0x44f720
mov esi, ebx
mov rcx, rsi
shl rcx, 4
call fcn.0047c0a6
lea rdx, [rsi*8]
mov rcx, r14
mov rdi, rax
call fcn.00448df0
mov rcx, qword [r14 + 0x28]
mov r8d, dword [rsp + 0x168]
mov r9d, ebx
mov rdx, qword [rsp + 0x158]
mov rsi, rax
call fcn.0044c420
mov rbp, rax
jmp 0x44f4c5
mov rdx, r10
mov rcx, r14
call fcn.00448dd0
jmp 0x44fdda
mov rax, qword [rdi + 0x10]
add r13d, 1
xor ebp, ebp
cmp byte [rax], 0x5c
jne 0x44fde4
jmp 0x44fde9
sub esi, 1
cmp esi, 2
je 0x450cc0
mov byte [rsp + 0xa8], 0
jmp 0x450070
mov rdx, qword [rsp + 0x88]
sub rsi, rcx
mov r8, rax
mov rcx, r14
mov qword [rsp + 0xa8], rax
call fcn.00448f80
mov rdx, qword [r14 + 0x40]
mov rax, qword [rsp + 0xa8]
mov rcx, qword [rdx + 0x10]
add rsi, rcx
jmp 0x44fe78
test r9w, r9w
jne 0x44fbd2
mov rax, qword [rsp + 0x88]
xor ebx, ebx
mov r12d, dword [rax + 0x18]
test r12d, r12d
setne bl
jmp 0x44fbd2
test r15, r15
je 0x450126
mov r11, qword [rax + 0x10]
jmp 0x450126
test rbp, rbp
je 0x4509f3
test byte [rbp + 6], 1
jne 0x44fde9
cmp qword [rdi + 8], 0
jne 0x44fde9
mov rbp, qword [rdi + 8]
jmp 0x44fde9
mov eax, r13d
mov r15, qword [rsp + 0x98]
mov r13, qword [rsp + 0xa0]
test al, 1
je 0x450a28
lea r8, str.invalid_string_literal__ignoring_final_
xor edx, edx
mov rcx, r14
sub rsi, 1
call fcn.0043f3b0
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.00448300
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 0x44fd10
xor r11d, r11d
test r13b, r13b
mov edi, dword [rax + 0x1c]
mov r15, qword [rax + 8]
jne 0x450e45
mov rcx, qword [rsp + 0x98]
test rcx, rcx
je 0x450ae1
mov rax, qword [r12 + 0x10]
cmp qword [r12 + 8], rax
je 0x450ae1
sub rax, 8
mov r10d, 2
cmp rcx, rax
jne 0x450131
test edi, edi
je 0x450131
test r15, r15
je 0x450b63
mov rax, qword [r15]
cmp byte [rax + 4], 0x54
jne 0x450ae1
lea rax, [r11 + 4]
add r15, 8
test r13b, r13b
cmovne r11, rax
sub edi, 1
jne 0x450abb
mov r10d, 2
jmp 0x450131
mov rdi, qword [rsp + 0x88]
mov ebp, dword [rdi + 0x18]
test ebp, ebp
jne 0x44fc1a
cmp byte [r14 + 0x459], 0
jne 0x44fc1a
lea rax, [rax + rax*2]
mov rdi, qword [rsp + 0x88]
shl rax, 4
mov qword [rdi + rax - 0x30], 0
jmp 0x44fc1a
xor ecx, ecx
call fcn.0047c0a6
xor edx, edx
mov rcx, r14
mov rdi, rax
call fcn.00448df0
mov rcx, qword [r14 + 0x28]
mov r8d, dword [rsp + 0x168]
xor r9d, r9d
mov rdx, qword [rsp + 0x158]
mov rsi, rax
call fcn.0044c420
jmp 0x44f4fe
movzx eax, byte [4]
ud2
mov qword [rsp + 0x90], 0
jmp 0x45084c
mov dword [rsp + 0xa0], 2
mov esi, 2
jmp 0x4500c9
mov dword [rsp + 0xe8], r8d
mov esi, 1
jmp 0x450373
mov r8d, dword [rbx]
lea r9, str._cannot_appear_at_either_end_of___VA_OPT__
mov edx, 3
mov rcx, r14
call fcn.0043f5b0
jmp 0x4500c9
mov r8, rax
mov eax, edi
jmp 0x450bdc
mov ecx, edx
lea rcx, [rcx + rcx*2]
cmp byte [r8 + rcx*8 + 0x1c], 0x27
jne 0x450e57
mov eax, edx
test eax, eax
lea edx, [rax - 1]
jne 0x450bc8
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 0x44ff64
mov rax, qword [r14 + 0x88]
cmp qword [rax + 8], 0
je 0x450f34
mov edx, 1
mov rcx, r14
call fcn.0044ed90
mov rax, qword [rsp + 0x158]
lea r8, [0x004faea8]
mov edx, 3
mov rcx, r14
mov r9, qword [rax]
call fcn.0043f3b0
mov rdx, qword [rsp + 0x78]
mov rcx, r14
call fcn.00448dd0
sub dword [r14 + 0x1ec], 1
sub byte [r14 + 0x18], 1
cmp byte [r14 + 0x44a], 0
mov byte [r14 + 0x19], 0
je 0x450c9d
mov rax, qword [rsp + 0x158]
mov rax, qword [rax + 0x20]
test byte [rax + 0x14], 0x10
jne 0x450c9d
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.0043f3e0
test r15, r15
je 0x44f6b0
mov rdx, r15
mov rcx, r14
call fcn.00448dd0
jmp 0x44f6b0
mov rax, qword [pe_dos_header]
ud2
cmp byte [rsp + 0xa8], 0
je 0x450cf0
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.0043f5b0
mov byte [rsp + 0xa8], 0
jmp 0x4500c9
movzx r9d, word [rbx + 6]
mov rcx, qword [r12 + 8]
mov rdx, qword [r12 + 0x10]
and r9d, 8
cmp rcx, rdx
je 0x450d86
sub rdx, 8
xor r8d, r8d
mov r10, qword [rsp + 0x98]
jmp 0x450d3e
mov rax, qword [r12 + 0x10]
cmp rcx, rax
jae 0x450d33
sub rax, 8
mov qword [r12 + 0x10], rax
lea rdx, [rax - 8]
cmp rcx, rax
cmove rdx, r8
test rdx, rdx
je 0x450deb
cmp rdx, r10
je 0x450deb
mov rax, qword [rdx]
cmp byte [rax + 4], 0x54
je 0x450d20
test r9w, r9w
je 0x450d9e
lea r8, [rbx + 6]
mov rcx, r14
xor esi, esi
call fcn.0044e820
mov byte [rsp + 0xa8], 0
mov qword [rsp + 0x98], 0
jmp 0x4500c9
xor esi, esi
test r9w, r9w
mov qword [rsp + 0x98], 0
jne 0x4500c9
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.0044e890
mov byte [rsp + 0xa8], 0
mov qword [rsp + 0x98], 0
jmp 0x4500c9
test r9w, r9w
je 0x450d9e
test rdx, rdx
je 0x450ed4
mov rax, qword [rdx]
cmp byte [rax + 4], 0x54
jne 0x450d5f
xor esi, esi
mov byte [rsp + 0xa8], 0
mov qword [rsp + 0x98], 0
jmp 0x4500c9
lea rbx, [rcx*8]
mov esi, dword [rsp + 0x58]
jmp 0x44ff64
test r15, r15
je 0x4507ed
mov r11, qword [rax + 0x20]
jmp 0x4507ed
test r15, r15
je 0x450a87
mov r11, qword [rax + 0x28]
jmp 0x450a87
mov dword [rsp + 0x58], eax
jmp 0x44fccf
mov rdx, rbx
mov rcx, r14
call fcn.00451dc0
jmp 0x44ff41
mov rdx, rax
mov rcx, r14
call fcn.00451dc0
jmp 0x4504d3
mov r10, qword [rsp + 0x50]
test byte [r10 + 0x14], 8
je 0x45082e
movzx r9d, word [r10 + 0x10]
cmp edx, r9d
jne 0x45082e
test r15, r15
je 0x450ead
cmp qword [r15], 0
jne 0x45084c
cmp r8, rax
jae 0x450b6d
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x90], 0
mov qword [r12 + 0x10], rax
jmp 0x45084c
mov qword [rsp + 0x98], 0
xor esi, esi
mov byte [rsp + 0xa8], 0
jmp 0x4500c9
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.0043f410
movzx eax, byte [r14 + 0x10]
jmp 0x4502d0
mov dword [rsp + 0xa0], 1
mov esi, 2
jmp 0x4500c9
cmp byte [r14 + 0x10], 0
je 0x450c24
jmp 0x450c17
movzx ecx, byte [rdi + 4]
call fcn.004409e0
test al, al
mov r15d, eax
mov rcx, rdi
jne 0x44fe48
call fcn.00448460
mov eax, eax
jmp 0x44fe5c