Function at 0x18012e880
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x4c0]
sub rsp, 0x5c0
mov rax, qword [0x180183c70]
xor rax, rsp
mov qword [rbp + 0x4b0], rax
mov r11, qword [rbp + 0x528]
lea r12d, [r8 - 0xd]
mov dword [rsp + 0x6c], r8d
mov r10, rdx
mov eax, dword [rsp + 0x6c]
xor ebx, ebx
mov qword [rbp + 0x60], r11
mov edi, r8d
mov r15, qword [rbp + 0x60]
mov r14d, r8d
mov qword [rsp + 0x60], rdx
mov rdx, qword [rbp + 0x520]
mov qword [rbp + 0x98], rcx
mov ecx, dword [rsp + 0x6c]
mov qword [rbp - 0x48], r15
mov qword [rbp + 0xa0], r9
mov qword [rbp - 0x20], rdx
mov dword [rbp - 0x50], ecx
cmp r8d, r12d
jbe 0x18012ecac
mov ecx, dword [rsp + 0x6c]
lea esi, [r8 - 0x1e]
mov r13, qword [rbp + 0xa8]
mov dword [rbp - 0x7c], eax
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x70], eax
mov dword [rbp - 0x38], ecx
lea r8, [0x1800028c0]
cmp esi, 0x23
ja case.0x18012e96f.8
lea rdi, [0x180000000]
movzx eax, byte [rdi + rsi + 0x1305e8]
mov ecx, dword [rdi + rax*4 + 0x1305b0]
add rcx, rdi
jmp rcx
test byte [r10 + 8], 1
mov rax, qword [rdx]
je 0x18012e99d
xor edx, edx
mov qword [rbp + 0x58], rax
xor r9d, r9d
mov qword [rsp + 0x20], rbx
lea r8, [rbp + 0x58]
lea ecx, [rdx + 0x4e]
call fcn.1800c5930
mov r13, rax
jmp 0x18012ec7a
lea rdx, [rbp + 0x50]
mov qword [rbp + 0x50], rax
mov ecx, 0x123
call fcn.18001bc40
mov r13, rax
jmp 0x18012ec7a
mov rax, qword [r10]
mov rcx, qword [rax + 0x18]
cmp qword [rcx + 0x78], r8
je 0x18012ea50
mov edi, 0xa6
nop dword [rax]
mov eax, edi
sub eax, 0xa6
je 0x18012ea39
sub eax, 0x61
je 0x18012ea10
cmp eax, 0x61
jne 0x18012ea3c
mov rax, r15
mov rcx, qword [rbp + 0x4b0]
xor rcx, rsp
call fcn.18015c4c0
mov rbx, qword [rsp + 0x610]
add rsp, 0x5c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov dword [r11], ebx
mov rcx, r10
mov rax, qword [r10]
mov rdx, qword [rax + 0x18]
call qword [rdx + 0x78]
mov r10, qword [rsp + 0x60]
mov r15, rax
mov r9, qword [rbp + 0xa0]
mov r11, qword [rbp + 0x60]
mov qword [rbp - 0x48], rax
jmp 0x18012ea3c
mov qword [r9], rbx
add edi, 0x61
cmp edi, 0x1c9
jb 0x18012e9d0
jmp 0x18012ec7a
mov r8, rax
cmp qword [rax + 0x20], rbx
je 0x18012ea90
mov eax, 0x14
nop
cmp eax, 0x14
je 0x18012ea75
cmp eax, 0xaa
jne 0x18012ea7b
mov rax, qword [r8 + 0x20]
jmp 0x18012e9e6
mov qword [r9], rbx
mov dword [r11], ebx
add eax, 0x96
cmp eax, 0x140
jb 0x18012ea60
mov qword [rbp - 0x48], r15
jmp case.0x18012e96f.8
mov edx, 0xc3
mov qword [rbp - 0x48], r15
nop dword [rax]
cmp edx, 0xc3
je 0x18012eac7
cmp edx, 0x2184
je 0x18012eabe
cmp edx, 0x4245
je case.0x18012e96f.32
jmp 0x18012ead8
mov r15, rbx
mov qword [rbp - 0x48], rbx
jmp 0x18012ead8
lea rax, [r8 + 0x28]
mov qword [r9], rax
mov rax, qword [r8 + 0x10]
mov ecx, dword [rax + 0x20]
mov dword [r11], ecx
add edx, 0x20c1
cmp edx, 0x6243
jbe 0x18012eaa0
jmp 0x18012ec7a
mov r9d, 0xdd
mov dword [rbp - 0x7c], ebx
mov r8, r10
mov qword [rsp + 0x20], rbx
xor edx, edx
xor ecx, ecx
call fcn.180141cf0
cmp al, 0x42
jne 0x18012eb2a
mov r8, qword [rsp + 0x60]
mov r9d, 0xdd
xor edx, edx
mov qword [rsp + 0x20], rbx
xor ecx, ecx
call fcn.180141cf0
cmp al, 0x4d
je 0x18012ec7a
mov edi, 0x60
nop
mov eax, edi
sub eax, 0x5f
je case.0x18012e96f.32
cmp eax, 1
jne 0x18012eb76
mov dword [rsp + 0x40], 0x12a
lea r9, str.not_BMP
mov qword [rsp + 0x38], rbx
xor r8d, r8d
mov qword [rsp + 0x30], rbx
xor edx, edx
mov qword [rsp + 0x28], rbx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.180113e50
mov r15, rbx
mov qword [rbp - 0x48], rbx
dec edi
cmp edi, 0x5e
ja 0x18012eb30
jmp 0x18012ec7a
mov r8d, ebx
mov dword [rsp + 0x54], ebx
mov r11d, ebx
mov dword [rsp + 0x58], ebx
jmp 0x18012ec88
mov dword [rbp - 0x50], ebx
jmp case.0x18012e96f.8
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
mov rcx, r10
call fcn.1800ffd70
mov dword [rbp - 0x38], eax
jmp 0x18012ec7a
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
mov rcx, r10
call fcn.1800ffd70
mov dword [rsp + 0x68], eax
jmp 0x18012ec7a
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
mov rcx, r10
call fcn.1800ffd70
jmp 0x18012ec7a
mov r8, qword [rdx]
mov rcx, r13
mov rdx, r11
call sub.VCRUNTIME140.dll_memcpy
jmp 0x18012ec7a
mov r8d, dword [rsp + 0x54]
mov r9d, ebx
mov r11d, dword [rsp + 0x58]
mov dword [rsp + 0x50], ebx
mov dword [rsp + 0x70], ebx
jmp 0x18012ec8d
xor edx, edx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r10
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rbx
lea ecx, [rdx + 0x64]
call fcn.1800ee280
mov rax, qword [rsp + 0x60]
xor edx, edx
mov qword [rsp + 0x30], rbx
xor r9d, r9d
mov qword [rsp + 0x28], rax
xor r8d, r8d
mov qword [rsp + 0x20], rbx
lea ecx, [rdx + 0x64]
call fcn.1800ee280
jmp 0x18012ec7a
mov eax, dword [r9]
lea r8, [rbp]
mov r9d, 0x13f
mov dword [rbp], eax
mov rdx, r10
mov rcx, r13
call fcn.180071b60
mov r15, rax
mov qword [rbp - 0x48], rax
mov rdx, qword [rbp - 0x20]
mov r11d, dword [rsp + 0x58]
mov r8d, dword [rsp + 0x54]
mov r9d, dword [rsp + 0x50]
mov r10, qword [rsp + 0x60]
dec r14d
dec esi
cmp r14d, r12d
jbe 0x18012ecea
mov r9, qword [rbp + 0xa0]
mov r11, qword [rbp + 0x60]
jmp 0x18012e946
mov edx, dword [rsp + 0x6c]
mov r8d, dword [rsp + 0x6c]
mov r11d, dword [rsp + 0x6c]
mov r13d, dword [rsp + 0x6c]
mov r9d, dword [rsp + 0x6c]
mov r12d, dword [rsp + 0x6c]
mov dword [rbp - 0x7c], edx
mov dword [rsp + 0x54], r8d
mov dword [rsp + 0x58], r11d
mov dword [rsp + 0x68], r13d
mov dword [rsp + 0x50], r9d
mov dword [rsp + 0x70], r12d
mov dword [rbp - 0x38], eax
jmp 0x18012ecfb
mov r12d, dword [rsp + 0x70]
mov edx, dword [rbp - 0x7c]
mov r13d, dword [rsp + 0x68]
mov edi, dword [rsp + 0x6c]
imul eax, edi, 0x5cc
mov dword [rbp - 0x24], edi
mov dword [rbp + 0x40], eax
cmp edi, eax
ja case.0x18012e96f.32
movzx r14d, byte [rbp + 0x3c]
mov esi, dword [rbp + 0x40]
mov edi, dword [rbp + 0x40]
mov qword [rbp + 0x48], r14
mov qword [rbp + 0x58], rsi
mov qword [rbp - 0x30], rdi
nop word [rax + rax]
cmp dword [rbp - 0x24], 0x6b63
mov rax, qword [rbp + 0x68]
mov rcx, qword [rbp + 0x50]
ja 0x18012f564
mov eax, dword [rbp - 0x24]
cmp eax, 0x6b63
je 0x18012f543
cmp eax, 0x2e1b
ja 0x18012ef56
je 0x18012ef44
cmp eax, 0x25
je 0x18012ee7b
cmp eax, 0xf77
je 0x18012ee23
cmp eax, 0x1ec9
jne 0x18012edec
cmp esi, 1
jne 0x18012edec
mov r12d, 0xf0
nop word [rax + rax]
mov eax, r12d
sub eax, 0xf0
je 0x18012eda5
cmp eax, 1
je case.0x18012e96f.32
jmp 0x18012eddb
mov dword [rsp + 0x40], 0x12a
lea r9, str.m_pEEClass
mov qword [rsp + 0x38], rbx
xor r8d, r8d
mov qword [rsp + 0x30], rbx
xor edx, edx
mov qword [rsp + 0x28], rbx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.180113e50
mov r15, rbx
mov qword [rbp - 0x48], rbx
inc r12d
cmp r12d, 0xf2
jb 0x18012ed90
mov r10, qword [rsp + 0x60]
imul eax, dword [rsp + 0x6c], 0x6a
mov ecx, dword [rbp - 0x24]
add ecx, eax
mov dword [rbp - 0x24], ecx
cmp ecx, dword [rbp + 0x40]
ja case.0x18012e96f.32
mov r12d, dword [rsp + 0x70]
mov r8d, dword [rsp + 0x54]
mov r9d, dword [rsp + 0x50]
mov r11d, dword [rsp + 0x58]
mov edx, dword [rbp - 0x7c]
mov r13d, dword [rsp + 0x68]
jmp 0x18012ed30
xor edx, edx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r10
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rbx
lea ecx, [rdx + 0x64]
call fcn.1800ee280
cmp eax, 1
jne 0x1801305a7
mov rax, qword [rsp + 0x60]
xor edx, edx
mov qword [rsp + 0x30], rbx
xor r9d, r9d
mov qword [rsp + 0x28], rax
xor r8d, r8d
mov qword [rsp + 0x20], rbx
lea ecx, [rdx + 0x64]
call fcn.1800ee280
mov rsi, rax
mov qword [rbp + 0x58], rax
jmp 0x18012ede7
cmp r13d, 0xc
je 0x18012eef1
cmp r13d, 0x28
je 0x18012ee9d
cmp r13d, 0x38
je 0x18012ee9d
cmp r13d, 0x6c
je 0x18012ee9d
cmp r13d, 0x7c
jne 0x180130570
mov r12d, 0x40
cmp r12d, 0x40
jne 0x18012eeda
lea r9d, [r12 + 0x25]
xor r8d, r8d
xor edx, edx
mov rcx, r10
call fcn.1800ffd70
mov rbx, qword [rsp + 0x60]
lea r9d, [r12 + 0x25]
xor r8d, r8d
xor edx, edx
mov rcx, rbx
mov dword [rbx], eax
call fcn.1800ffd70
mov r10, rbx
mov dword [rbx + 4], eax
add r12d, 0x1f80
cmp r12d, 0x1f80
jbe 0x18012eea3
xor ebx, ebx
jmp 0x18012edec
xor edx, edx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r10
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rbx
lea ecx, [rdx + 0x64]
call fcn.1800ee280
mov rcx, qword [rsp + 0x60]
xor edx, edx
mov qword [rsp + 0x30], rbx
xor r9d, r9d
mov qword [rsp + 0x28], rcx
xor r8d, r8d
mov qword [rsp + 0x20], rbx
mov dword [rcx], eax
lea ecx, [rdx + 0x64]
call fcn.1800ee280
mov r10, qword [rsp + 0x60]
mov dword [r10 + 4], eax
jmp 0x18012edec
cmp dword [r10 + 4], 0
mov eax, ebx
setg al
mov dword [rbp + 0x70], eax
jmp 0x18012edec
cmp eax, 0x3d6d
je 0x18012f531
cmp eax, 0x4cbf
je 0x18012ef87
cmp eax, 0x5c11
jne 0x18012edec
test r11d, r11d
mov eax, ebx
setne al
add eax, 3
mov dword [r10 + 8], eax
jmp 0x18012edec
mov r8d, dword [rsp + 0x68]
cmp r8d, 0xc
jne 0x18012efb7
cmp esi, 0x18
jge 0x18012edec
mov ecx, dword [rbp - 0x38]
mov eax, 0x55555556
add ecx, 0xffffffda
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [rbp - 0x50], ecx
jmp 0x18012edec
mov eax, 0x73
mov dword [rsp + 0x78], eax
add eax, 0xffffff8d
cmp eax, 6
ja case.default.0x18012efde
lea r9, [0x180000000]
mov ecx, dword [r9 + rax*4 + 0x13060c]
add rcx, r9
jmp rcx
mov rcx, r10
jmp 0x18012f4f7
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
mov rcx, r10
call fcn.1800ffd70
mov r8d, dword [rsp + 0x68]
lea eax, [r8 - 0x28]
test eax, 0xffffffef
je 0x18012f17b
mov rbx, qword [rsp + 0x60]
mov r13d, 0xae
nop word [rax + rax]
cmp r13d, 0xaeae
ja 0x18012f0d5
je 0x18012f0bd
cmp r13d, 0x2c2e
je 0x18012f08a
cmp r13d, 0x57ae
je 0x18012f06e
cmp r13d, 0x832e
jne 0x18012f160
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1800ffd70
mov dword [rsp + 0x58], eax
jmp 0x18012f15b
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1800ffd70
mov dword [rsp + 0x54], eax
jmp 0x18012f15b
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1800ffd70
mov r9d, 0x65
mov dword [rsp + 0x50], eax
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1800ffd70
mov dword [rsp + 0x70], eax
jmp 0x18012f15b
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1800ffd70
jmp 0x18012f15b
cmp r13d, 0xda2e
je 0x18012f13c
cmp r13d, 0x105ae
jne 0x18012f160
cmp r8d, 0x7c
jne 0x18012f160
mov r12d, 0x65
mov eax, r12d
sub eax, 0x65
je 0x18012f10b
sub eax, 1
je 0x18012f11e
cmp eax, 1
jne 0x18012f131
jmp 0x18012f11e
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1800ffd70
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1800ffd70
inc r12d
cmp r12d, 0x68
jb 0x18012f0f7
jmp 0x18012f15b
mov r12d, 0xc
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1800ffd70
sub r12, 1
jne 0x18012f142
mov r8d, dword [rsp + 0x68]
add r13d, 0x2b80
cmp r13d, 0x13080
jbe 0x18012f020
xor ebx, ebx
jmp 0x18012f50c
mov r13d, 0xc1
mov dword [rbp - 0x78], r13d
nop word [rax + rax]
cmp r13d, 0xc1
je 0x18012f3ce
cmp r13d, 0x153
jne 0x18012f42a
lea eax, [rsi - 0x10]
test eax, 0xffffffef
jne 0x18012f42a
mov eax, 0x113
mov dword [rbp - 0x64], eax
sub eax, 0x112
je 0x18012f1e4
cmp eax, 1
jne 0x18012f3b5
mov dword [rsp + 0x54], ebx
mov r12d, ebx
mov dword [rsp + 0x70], ebx
mov dword [rsp + 0x50], ebx
jmp 0x18012f3b5
mov eax, dword [rbp - 0x7c]
test eax, eax
jne 0x18012f28c
cmp esi, 0x20
jne 0x18012f24a
mov ecx, 0xd4
nop dword [rax]
mov eax, ecx
sub eax, 0xd4
je 0x18012f22e
sub eax, 1
je 0x18012f21e
cmp eax, 1
jne 0x18012f236
mov eax, 0xff000000
mov dword [rsp + 0x58], eax
jmp 0x18012f236
mov r12d, 0xff00
mov dword [rsp + 0x54], 0xff
jmp 0x18012f236
mov dword [rsp + 0x50], 0xff0000
inc ecx
cmp ecx, 0xd9
jb 0x18012f200
mov dword [rsp + 0x70], r12d
jmp 0x18012f3b5
mov ecx, 0x38
nop
mov eax, ecx
sub eax, 0x38
je 0x18012f273
sub eax, 1
je 0x18012f26b
cmp eax, 1
jne 0x18012f27b
mov dword [rsp + 0x54], 0x1f
jmp 0x18012f27b
mov r12d, 0x3e0
jmp 0x18012f27b
mov dword [rsp + 0x50], 0x7c00
inc ecx
cmp ecx, 0x3b
jb 0x18012f250
mov dword [rsp + 0x70], r12d
jmp 0x18012f3b5
cmp eax, 3
jne 0x18012f399
mov r13d, 0x127
nop dword [rax + rax]
mov eax, r13d
sub eax, 0x127
je 0x18012f36e
sub eax, 1
je 0x18012f350
cmp eax, 1
jne 0x18012f387
mov rcx, qword [rsp + 0x60]
lea r9d, [rax + 0x64]
xor r8d, r8d
xor edx, edx
call fcn.1800ffd70
mov dword [rsp + 0x54], eax
cmp dword [rsp + 0x50], r12d
jne 0x18012f387
cmp r12d, eax
jne 0x18012f387
mov r12d, 0xac
mov eax, r12d
sub eax, 0xac
je 0x18012f306
cmp eax, 0x76
je case.0x18012e96f.32
jmp 0x18012f33c
mov dword [rsp + 0x40], 0x12a
lea r9, str.bad_BMP
mov qword [rsp + 0x38], rbx
xor r8d, r8d
mov qword [rsp + 0x30], rbx
xor edx, edx
mov qword [rsp + 0x28], rbx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.180113e50
mov r15, rbx
mov qword [rbp - 0x48], rbx
add r12d, 0x76
cmp r12d, 0x198
jb 0x18012f2f1
mov r12d, dword [rsp + 0x70]
jmp 0x18012f387
mov rcx, qword [rsp + 0x60]
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
call fcn.1800ffd70
mov r12d, eax
mov dword [rsp + 0x70], eax
jmp 0x18012f387
mov rcx, qword [rsp + 0x60]
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
call fcn.1800ffd70
mov dword [rsp + 0x50], eax
inc r13d
cmp r13d, 0x12a
jb 0x18012f2a0
jmp 0x18012f3b5
mov eax, 0x40
nop
cmp eax, 0x40
je 0x1801305a7
add eax, 0x1b00
cmp eax, 0x1b00
jbe 0x18012f3a0
mov eax, dword [rbp - 0x64]
dec eax
mov dword [rbp - 0x64], eax
cmp eax, 0x111
ja 0x18012f1c0
mov r13d, dword [rbp - 0x78]
jmp 0x18012f425
cmp r8d, 0x38
jne 0x18012f42a
mov rbx, qword [rsp + 0x60]
mov r12d, 0x13
nop
mov eax, r12d
sub eax, 0x11
je 0x18012f407
sub eax, 1
je 0x18012f3f4
cmp eax, 1
je 0x18012f407
jmp 0x18012f41a
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1800ffd70
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1800ffd70
dec r12d
cmp r12d, 0x10
ja 0x18012f3e0
xor ebx, ebx
mov r8d, dword [rsp + 0x68]
mov r12d, dword [rsp + 0x70]
add r13d, 0x92
mov dword [rbp - 0x78], r13d
cmp r13d, 0x1e5
jb 0x18012f190
jmp 0x18012f50c
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
mov rcx, r10
call fcn.1800ffd70
mov r8d, dword [rsp + 0x68]
mov edx, eax
mov dword [rbp - 0x7c], eax
jmp case.default.0x18012efde
cmp esi, 0x10
jge case.default.0x18012efde
mov r13d, dword [rbp - 0x38]
sub r13d, r8d
sub r13d, 0xe
sar r13d, 2
mov dword [rbp - 0x50], r13d
jmp case.default.0x18012efde
lea eax, [rdx - 1]
cmp eax, 1
ja 0x18012f4f2
mov r12d, 0x3b
nop dword [rax]
mov eax, r12d
sub eax, 0x3b
je 0x18012f4b3
cmp eax, 1
je case.0x18012e96f.32
jmp 0x18012f4e9
mov dword [rsp + 0x40], 0x12a
lea r9, str.BMP_RLE
mov qword [rsp + 0x38], rbx
xor r8d, r8d
mov qword [rsp + 0x30], rbx
xor edx, edx
mov qword [rsp + 0x28], rbx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.180113e50
mov r15, rbx
mov qword [rbp - 0x48], rbx
inc r12d
cmp r12d, 0x3d
jb 0x18012f4a0
mov rcx, qword [rsp + 0x60]
mov r9d, 0x65
xor r8d, r8d
xor edx, edx
call fcn.1800ffd70
mov r8d, dword [rsp + 0x68]
mov edx, dword [rbp - 0x7c]
mov eax, dword [rsp + 0x78]
mov r10, qword [rsp + 0x60]
inc eax
mov r12d, dword [rsp + 0x70]
mov dword [rsp + 0x78], eax
cmp eax, 0x7a
jb 0x18012efc0
jmp 0x18012edec
mov eax, dword [r10 + 4]
cdq
xor eax, edx
sub eax, edx
mov dword [r10 + 4], eax
jmp 0x18012edec
mov rax, qword [rbp + 0x98]
mov ecx, dword [rax]
mov dword [rbp - 0x80], ecx
cmp ecx, 3
jge 0x18012edec
mov eax, dword [r10 + 8]
mov dword [rbp - 0x80], eax
jmp 0x18012edec
mov edx, dword [rbp - 0x24]
cmp edx, 0xa8ab
ja 0x18013052e
je 0x18013051d
cmp edx, 0x7ab5
je 0x18013047f
cmp edx, 0x8a07
je 0x18012f796
cmp edx, 0x9959
jne 0x18012edec
cmp dword [rbp + 0x70], 0
je 0x18012f687
test dword [r10 + 4], 0xfffffffe
mov r11d, ebx
mov qword [rbp + 0x50], rcx
mov qword [rbp + 0x68], rax
jle 0x18012f687
mov rdi, qword [rbp - 0x60]
mov r15, rcx
mov r14d, dword [rbp - 0x80]
mov rcx, rax
mov qword [rbp + 0x68], rax
mov rsi, qword [rsp + 0x60]
mov r10d, 0xa8
nop dword [rax]
cmp r10d, 0xa8
je 0x18012f6e3
cmp r10d, 0x5898
jne 0x18012f64c
mov r12, qword [rsp + 0x60]
mov r8d, ebx
mov r13d, dword [rbp - 0x80]
mov eax, dword [r12]
imul eax, r13d
test eax, eax
jle 0x18012f646
mov r9, r15
mov rdx, rcx
sub r9, rcx
nop word [rax + rax]
movzx eax, byte [rdx]
inc r8d
movzx ecx, byte [r9 + rdx]
mov byte [r9 + rdx], al
mov byte [rdx], cl
lea rdx, [rdx + 1]
mov eax, dword [r12]
imul eax, r13d
cmp r8d, eax
jl 0x18012f620
mov rcx, qword [rbp + 0x68]
mov r14d, r13d
mov rsi, r12
add r10d, 0x57f0
cmp r10d, 0xafe0
jbe 0x18012f5e0
mov r10, qword [rsp + 0x60]
inc r11d
mov qword [rbp + 0x50], r15
mov eax, dword [r10 + 4]
sar eax, 1
cmp r11d, eax
jl 0x18012f5d2
mov rdi, qword [rbp - 0x30]
mov rsi, qword [rbp + 0x58]
mov r14, qword [rbp + 0x48]
mov r15, qword [rbp - 0x48]
mov rdx, qword [rbp + 0x98]
mov eax, dword [rdx]
test eax, eax
je 0x18012edec
mov ecx, dword [rbp - 0x80]
cmp eax, ecx
je 0x18012edec
mov r12d, 0x1a
nop dword [rax]
mov eax, r12d
sub eax, 0x1a
je 0x18012f71e
cmp eax, 0x7c
jne 0x18012f780
cmp qword [rbp - 0x60], 0
jne 0x18012f780
mov ecx, 0x14
mov eax, ecx
sub eax, 0x14
je 0x18012f70e
cmp eax, 1
je case.0x18012e96f.32
jmp 0x18012f715
mov ecx, dword [rsi]
mov r15d, r11d
mov eax, dword [rsi + 4]
sub eax, r11d
imul r15d, r14d
dec eax
imul eax, r14d
imul r15d, ecx
imul ecx, eax
add r15, rdi
add rcx, rdi
mov qword [rbp + 0x68], rcx
jmp 0x18012f64c
mov r15, rbx
mov qword [rbp - 0x48], rbx
inc ecx
cmp ecx, 0x16
jb 0x18012f6d1
jmp 0x18012f77d
mov eax, dword [r10 + 4]
lea r8, [rbp + 0x88]
mov r9, qword [rbp - 0x60]
mov dword [rbp + 0x90], eax
mov eax, dword [r10]
mov dword [rbp + 0x78], eax
mov eax, dword [rdx]
lea rdx, [rbp + 0x90]
mov dword [rbp + 0x80], eax
lea rax, [rbp + 0x78]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x80]
mov dword [rbp + 0x88], ecx
mov ecx, 0x9c
mov qword [rsp + 0x20], rax
call fcn.18001a860
mov r10, qword [rsp + 0x60]
mov rdx, qword [rbp + 0x98]
mov qword [rbp - 0x60], rax
mov ecx, dword [rbp - 0x80]
add r12d, 0x7c
cmp r12d, 0x112
jb 0x18012f6b0
jmp 0x18012edec
cmp esi, 0x10
jge 0x18012fd4d
movsxd r13, dword [rbp - 0x50]
mov eax, 0xe6
mov rcx, r13
mov dword [rbp - 0x78], eax
mov qword [rbp - 0x58], rcx
sub eax, 0xe6
je 0x18012fcb7
sub eax, 1
je 0x18012fb85
sub eax, 1
je 0x18012fad5
cmp eax, 1
jne 0x18012fd2c
cmp dword [r10 + 4], 0
mov dword [rbp - 0x64], ebx
jle 0x18012fd2c
mov r14d, dword [rbp + 0x38]
nop word [rax + rax]
mov r12d, 0xe6
mov dword [rsp + 0x78], r12d
nop dword [rax + rax]
cmp r12d, 0xe6
je 0x18012f859
cmp r12d, 0x178
je 0x18012facd
cmp r12d, 0x20a
je 0x18012f84d
cmp r12d, 0x29c
jne 0x18012fa95
mov r8, r10
mov dword [rsp + 0x78], r14d
mov edx, 0x129
lea rcx, [rsp + 0x78]
call fcn.1800e7310
mov r10, qword [rsp + 0x60]
jmp 0x18012fa95
mov dword [rbp - 0x24], 0x8a07
jmp 0x18012fa95
cmp dword [r10], 0
mov r13d, ebx
jle 0x18012fa95
nop word [rax + rax]
mov r12d, 0x10e
nop word [rax + rax]
cmp r12d, 0x2f436
ja 0x18012f9e5
je 0x18012f9a1
cmp r12d, 0x10e
je 0x18012f977
cmp r12d, 0xbdd8
je 0x18012f93e
cmp r12d, 0x17aa2
je 0x18012f900
cmp r12d, 0x2376c
jne 0x18012fa6f
movsxd r9, dword [rbp - 0x74]
movsxd rax, dword [rbp - 0x68]
mov r8, qword [rbp - 0x60]
movzx eax, byte [rbp + rax*4 + 0xb2]
mov byte [r9 + r8], al
inc r9d
cmp dword [rbp - 0x80], 4
mov dword [rbp - 0x74], r9d
jne 0x18012fa6f
movsxd rax, r9d
inc r9d
mov dword [rbp - 0x74], r9d
mov byte [rax + r8], 0xff
jmp 0x18012fa6f
movsxd r9, dword [rbp - 0x74]
movsxd rax, dword [rbp - 0x68]
mov r8, qword [rbp - 0x60]
lea rdx, [rax*4]
movzx eax, byte [rbp + rdx + 0xb0]
mov byte [r9 + r8], al
inc r9d
movzx eax, byte [rbp + rdx + 0xb1]
movsxd rcx, r9d
inc r9d
mov dword [rbp - 0x74], r9d
mov byte [rcx + r8], al
jmp 0x18012fa6f
cmp esi, 4
jne 0x18012fa6f
mov ecx, 0xc
nop dword [rax]
mov eax, ecx
sub eax, 0xc
je 0x18012f962
cmp eax, 1
jne 0x18012f96b
sar dword [rbp - 0x68], 4
jmp 0x18012f96b
mov eax, dword [rbp - 0x68]
and eax, 0xf
mov dword [rbp + 0x44], eax
inc ecx
cmp ecx, 0xe
jb 0x18012f950
jmp 0x18012fa6f
mov r9d, 0xdd
mov qword [rsp + 0x20], rbx
mov r8, r10
xor edx, edx
xor ecx, ecx
call fcn.180141cf0
mov r10, qword [rsp + 0x60]
movzx eax, al
mov dword [rbp - 0x68], eax
mov dword [rbp + 0x44], ebx
jmp 0x18012fa6f
lea eax, [r13 + 1]
cmp eax, dword [r10]
je 0x18012facd
cmp esi, 8
jne 0x18012f9da
mov r9d, 0xdd
mov qword [rsp + 0x20], rbx
mov r8, r10
xor edx, edx
xor ecx, ecx
call fcn.180141cf0
mov r10, qword [rsp + 0x60]
movzx eax, al
mov dword [rbp - 0x68], eax
jmp 0x18012fa6f
mov eax, dword [rbp + 0x44]
mov dword [rbp - 0x68], eax
jmp 0x18012fa6f
cmp r12d, 0x3b100
je 0x18012fa50
cmp r12d, 0x46dca
je 0x18012fa15
cmp r12d, 0x52a94
jne 0x18012fa6f
cmp dword [rbp - 0x80], 4
jne 0x18012fa6f
movsxd r8, dword [rbp - 0x74]
mov rcx, qword [rbp - 0x60]
mov byte [r8 + rcx], 0xff
jmp 0x18012fa68
movsxd r9, dword [rbp - 0x74]
movsxd rax, dword [rbp - 0x68]
mov r8, qword [rbp - 0x60]
lea rdx, [rax*4]
movzx eax, byte [rbp + rdx + 0xb1]
mov byte [r9 + r8], al
inc r9d
movzx eax, byte [rbp + rdx + 0xb2]
movsxd rcx, r9d
inc r9d
mov dword [rbp - 0x74], r9d
mov byte [rcx + r8], al
jmp 0x18012fa6f
movsxd rax, dword [rbp - 0x68]
movsxd r8, dword [rbp - 0x74]
mov rdx, qword [rbp - 0x60]
movzx eax, byte [rbp + rax*4 + 0xb0]
mov byte [r8 + rdx], al
inc r8d
mov dword [rbp - 0x74], r8d
add r12d, 0xbcca
cmp r12d, 0x5e650
jbe 0x18012f880
add r13d, 2
cmp r13d, dword [r10]
jl 0x18012f870
mov r12d, dword [rsp + 0x78]
add r12d, 0x92
mov dword [rsp + 0x78], r12d
cmp r12d, 0x32e
jb 0x18012f800
mov eax, dword [rbp - 0x64]
inc eax
mov dword [rbp - 0x64], eax
cmp eax, dword [r10 + 4]
jl 0x18012f7f0
mov r14, qword [rbp + 0x48]
mov r13d, dword [rbp - 0x50]
jmp 0x18012fd2c
mov r12d, 0x178
jmp 0x18012fa95
cmp esi, 4
jne 0x18012faf1
mov eax, dword [r10]
inc eax
shr eax, 1
mov dword [rbp - 0x28], eax
neg eax
and eax, 3
mov dword [rbp + 0x38], eax
jmp 0x18012fd2c
cmp esi, 8
jne 0x18012fb09
mov eax, dword [r10]
mov dword [rbp - 0x28], eax
neg eax
and eax, 3
mov dword [rbp + 0x38], eax
jmp 0x18012fd2c
mov r12d, 0x48
nop
cmp r12d, 0x48
je 0x18012fb25
cmp r12d, 0x1368
je case.0x18012e96f.32
jmp 0x18012fb65
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [rsp + 0x40], 0x12a
lea r9, str.bad_bpp
mov qword [rsp + 0x38], rbx
xor r8d, r8d
mov qword [rsp + 0x30], rbx
xor edx, edx
mov qword [rsp + 0x28], rbx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.180113e50
mov r15, rbx
mov qword [rbp - 0x48], rbx
add r12d, 0x1320
cmp r12d, 0x2640
jbe 0x18012fb10
mov eax, dword [rbp - 0x28]
neg eax
and eax, 3
mov dword [rbp + 0x38], eax
jmp 0x18012fd2c
mov r13, rbx
test rcx, rcx
jle 0x18012fc7c
mov edi, dword [rsp + 0x68]
mov r12d, 0x70
jmp 0x18012fbb5
mov r10, qword [rsp + 0x60]
mov r12d, 0x70
jmp 0x18012fbb5
mov r10, qword [rsp + 0x60]
mov eax, r12d
sub eax, 0x6d
je 0x18012fc55
sub eax, 1
je 0x18012fc37
sub eax, 1
je 0x18012fbf5
cmp eax, 1
jne 0x18012fc5e
mov r9d, 0xdd
mov qword [rsp + 0x20], rbx
mov r8, r10
xor edx, edx
xor ecx, ecx
call fcn.180141cf0
mov byte [rbp + r13*4 + 0xb2], al
jmp 0x18012fc5e
mov r9d, 0xdd
mov qword [rsp + 0x20], rbx
mov r8, r10
xor edx, edx
xor ecx, ecx
call fcn.180141cf0
mov r8, qword [rsp + 0x60]
mov r9d, 0xdd
xor edx, edx
mov byte [rbp + r13*4 + 0xb1], al
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.180141cf0
mov byte [rbp + r13*4 + 0xb0], al
jmp 0x18012fc5e
cmp edi, 0xc
je 0x18012fc5e
mov r9d, 0xdd
mov qword [rsp + 0x20], rbx
mov r8, r10
xor edx, edx
xor ecx, ecx
call fcn.180141cf0
jmp 0x18012fc5e
mov byte [rbp + r13*4 + 0xb3], 0xff
dec r12d
cmp r12d, 0x6c
ja 0x18012fbb0
inc r13
cmp r13, qword [rbp - 0x58]
jl 0x18012fba0
mov rdi, qword [rbp - 0x30]
cmp dword [rsp + 0x68], 0xc
mov eax, ebx
mov ecx, dword [rbp - 0x38]
mov edx, 0x129
mov r8, qword [rsp + 0x60]
sete al
add eax, 0xfffffffc
add ecx, 0xfffffff2
imul eax, dword [rbp - 0x50]
sub eax, dword [rsp + 0x68]
add eax, ecx
lea rcx, [rsp + 0x78]
mov dword [rsp + 0x78], eax
call fcn.1800e7310
mov r13d, dword [rbp - 0x50]
jmp 0x18012fd2c
mov dword [rbp - 0x74], ebx
test r13d, r13d
je 0x18012fcc8
cmp r13d, 0x100
jle 0x18012fd2c
mov r12d, 4
nop
mov eax, r12d
sub eax, 4
je 0x18012fce3
cmp eax, 1
je case.0x18012e96f.32
jmp 0x18012fd23
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [rsp + 0x40], 0x12a
lea r9, str.invalid
mov qword [rsp + 0x38], rbx
xor r8d, r8d
mov qword [rsp + 0x30], rbx
xor edx, edx
mov qword [rsp + 0x28], rbx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.180113e50
mov r15, rbx
mov qword [rbp - 0x48], rbx
inc r12d
cmp r12d, 6
jb 0x18012fcd0
mov eax, dword [rbp - 0x78]
mov rcx, qword [rbp - 0x58]
inc eax
mov r10, qword [rsp + 0x60]
mov dword [rbp - 0x78], eax
cmp eax, 0xea
jb 0x18012f7b2
jmp 0x18012edec
mov ecx, 0x2f
mov dword [rbp - 0x78], ecx
cmp ecx, 0x2a0
ja 0x18012fdb8
je 0x18012fdaf
mov eax, ecx
sub eax, 0x2f
je 0x18012fda4
sub eax, 0x7d
je 0x18012fd9c
sub eax, 0x7d
je 0x18012fd94
sub eax, 0x7d
je 0x18012fd89
cmp eax, 0x7d
jne 0x18013044f
mov dword [rbp + 0x30], ebx
mov dword [rbp - 8], ebx
jmp 0x18013044f
mov dword [rbp + 0x20], ebx
mov dword [rbp + 0x10], ebx
jmp 0x18013044f
mov dword [rbp + 8], ebx
jmp 0x18013044f
mov dword [rbp - 0x10], ebx
jmp 0x18013044f
mov dword [rbp + 0x28], ebx
mov dword [rbp + 0x18], ebx
jmp 0x18013044f
mov dword [rsp + 0x74], ebx
jmp 0x18013044f
mov eax, ecx
sub eax, 0x31d
je 0x18013044c
sub eax, 0x7d
je 0x180130403
sub eax, 0x7d
je 0x1801303f6
sub eax, 0x7d
je 0x1801303af
cmp eax, 0x7d
jne 0x18013044f
cmp dword [rbp - 0x18], 0
jne 0x18012ffc6
mov r12d, 7
mov r13d, ebx
mov dword [rsp + 0x78], r12d
cmp r13d, 5
ja case.default.0x18012fe1f
lea rdx, [0x180000000]
mov eax, r13d
mov ecx, dword [rdx + rax*4 + 0x130628]
add rcx, rdx
jmp rcx
mov eax, dword [rsp + 0x70]
lea r8, [rbp + 0x18]
mov edx, 0x10d
mov dword [rbp + 0x18], eax
xor ecx, ecx
call fcn.180150010
sub eax, 7
lea rdx, [rbp + 0x10]
mov dword [rbp + 0x18], eax
mov r8d, 0x120
mov eax, dword [rsp + 0x70]
xor ecx, ecx
mov dword [rbp + 0x10], eax
call fcn.1800c6750
mov dword [rbp + 0x10], eax
jmp 0x18012ff9a
mov r8d, 0x120
mov dword [rbp + 0x20], r9d
lea rdx, [rbp + 0x20]
xor ecx, ecx
call fcn.1800c6750
mov dword [rbp + 0x20], eax
jmp 0x18012ff9a
mov r8d, 0x120
mov dword [rbp - 8], r11d
lea rdx, [rbp - 8]
xor ecx, ecx
call fcn.1800c6750
mov dword [rbp - 8], eax
jmp 0x18012ff9a
mov dword [rbp + 0x30], r8d
lea rdx, [rbp + 0x30]
mov r8d, 0x120
xor ecx, ecx
call fcn.1800c6750
mov dword [rbp + 0x30], eax
lea r8, [rbp + 8]
mov eax, dword [rsp + 0x58]
mov edx, 0x10d
xor ecx, ecx
mov dword [rbp + 8], eax
call fcn.180150010
sub eax, 7
mov dword [rbp + 8], eax
jmp 0x18012ff9a
mov dword [rbp - 0x10], r8d
mov edx, 0x10d
lea r8, [rbp - 0x10]
xor ecx, ecx
call fcn.180150010
sub eax, 7
mov dword [rbp - 0x10], eax
jmp 0x18012ff9a
test r9d, r9d
je 0x18012ff02
cmp dword [rsp + 0x70], 0
je 0x18012ff02
test r8d, r8d
jne 0x18012ff80
mov r12d, 0x11a
nop dword [rax + rax]
mov eax, r12d
sub eax, 0x118
je case.0x18012e96f.32
sub eax, 1
je 0x18012ff34
cmp eax, 1
jne 0x18012ff6a
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x18012ff6a
mov dword [rsp + 0x40], 0x12a
lea r9, str.bad_masks
mov qword [rsp + 0x38], rbx
xor r8d, r8d
mov qword [rsp + 0x30], rbx
xor edx, edx
mov qword [rsp + 0x28], rbx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.180113e50
mov r15, rbx
mov qword [rbp - 0x48], rbx
dec r12d
cmp r12d, 0x117
ja 0x18012ff10
mov r12d, dword [rsp + 0x78]
mov r9d, dword [rsp + 0x50]
lea r8, [rbp + 0x28]
mov dword [rbp + 0x28], r9d
mov edx, 0x10d
xor ecx, ecx
call fcn.180150010
sub eax, 7
mov dword [rbp + 0x28], eax
mov r11d, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x50]
mov r8d, dword [rsp + 0x54]
inc r12d
inc r13d
mov dword [rsp + 0x78], r12d
cmp r12d, 0xd
jb 0x18012fe01
mov ecx, dword [rbp - 0x78]
mov r10, qword [rsp + 0x60]
cmp dword [r10 + 4], 0
mov dword [rsp + 0x78], ebx
jle 0x18013044f
mov r15d, dword [rbp - 0x18]
nop dword [rax]
mov r12d, 0x88
mov dword [rbp - 0x64], r12d
nop word [rax + rax]
cmp r12d, 0x88
jne 0x180130368
movsxd rdx, dword [rsp + 0x74]
mov r13d, ebx
mov eax, dword [r10]
mov rcx, rdx
mov qword [rbp - 0x58], rdx
test r15d, r15d
je 0x180130154
test eax, eax
jle 0x18013034c
mov rdi, qword [rbp - 0x60]
mov esi, dword [rbp - 0x80]
nop word [rax + rax]
mov r12d, 0x47
nop word [rax + rax]
mov eax, r12d
sub eax, 0x47
je 0x180130102
sub eax, 1
je 0x1801300e1
sub eax, 1
je 0x1801300c1
sub eax, 1
je 0x180130087
cmp eax, 1
jne 0x18013012a
cmp esi, 4
jne 0x18013012a
inc edx
mov byte [rcx + rdi], r14b
inc rcx
mov dword [rsp + 0x74], edx
mov qword [rbp - 0x58], rcx
jmp 0x18013012a
add edx, 3
add rcx, 3
mov dword [rsp + 0x74], edx
mov qword [rbp - 0x58], rcx
cmp r15d, 2
jne 0x1801300bc
mov r9d, 0xdd
mov qword [rsp + 0x20], rbx
mov r8, r10
xor edx, edx
xor ecx, ecx
call fcn.180141cf0
mov rcx, qword [rbp - 0x58]
mov r14, rax
jmp 0x180130121
mov r14b, 0xff
jmp 0x18013012a
mov r9d, 0xdd
mov qword [rsp + 0x20], rbx
mov r8, r10
xor edx, edx
xor ecx, ecx
call fcn.180141cf0
mov rcx, qword [rbp - 0x58]
mov byte [rcx + rdi], al
jmp 0x180130121
mov r9d, 0xdd
mov qword [rsp + 0x20], rbx
mov r8, r10
xor edx, edx
xor ecx, ecx
call fcn.180141cf0
mov rcx, qword [rbp - 0x58]
mov byte [rcx + rdi + 1], al
jmp 0x180130121
mov r9d, 0xdd
mov qword [rsp + 0x20], rbx
mov r8, r10
xor edx, edx
xor ecx, ecx
call fcn.180141cf0
mov rcx, qword [rbp - 0x58]
mov byte [rcx + rdi + 2], al
mov edx, dword [rsp + 0x74]
mov r10, qword [rsp + 0x60]
inc r12d
cmp r12d, 0x4c
jb 0x180130040
inc r13d
mov qword [rbp + 0x48], r14
cmp r13d, dword [r10]
jl 0x180130030
mov rdi, qword [rbp - 0x30]
mov rsi, qword [rbp + 0x58]
jmp 0x180130348
test eax, eax
jle 0x18013034c
mov r14d, dword [rbp - 0x80]
mov r15d, dword [rbp + 8]
nop dword [rax]
nop dword [rax + rax]
mov r12d, 0xd2
nop word [rax + rax]
cmp r12d, 0x222
ja 0x180130295
je 0x180130277
mov eax, r12d
sub eax, 0xd2
je 0x18013021c
sub eax, 0x70
je 0x180130201
cmp eax, 0x70
jne 0x180130310
mov eax, dword [rbp + 0x10]
lea r9, [rbp - 0x40]
mov dword [rbp - 0x70], eax
lea rdx, [rbp - 0x70]
mov eax, dword [rbp + 0x18]
mov dword [rbp - 0x40], eax
mov eax, edi
and eax, dword [rsp + 0x70]
lea r8, [rbp - 0x30]
mov dword [rbp - 0x30], eax
mov ecx, 0xff
mov qword [rsp + 0x20], rbx
call fcn.18007e4c0
mov rcx, qword [rbp - 0x58]
mov rdx, qword [rbp - 0x60]
mov r10, qword [rsp + 0x60]
mov byte [rcx + rdx], al
mov edx, dword [rsp + 0x74]
inc edx
inc rcx
mov dword [rsp + 0x74], edx
mov qword [rbp - 0x58], rcx
jmp 0x180130310
mov eax, dword [rbp + 0x20]
lea rdx, [rbp - 0x40]
mov dword [rbp - 0x40], eax
mov eax, dword [rbp + 0x28]
mov dword [rbp - 0x70], eax
mov eax, edi
and eax, r9d
lea r9, [rbp - 0x70]
jmp 0x1801301c5
xor r8d, r8d
xor edx, edx
cmp esi, 0x10
jne 0x180130255
mov qword [rsp + 0x30], rbx
lea ecx, [rdx + 0x64]
mov qword [rsp + 0x28], r10
xor r9d, r9d
mov qword [rsp + 0x20], rbx
call fcn.1800ee280
mov rcx, qword [rbp - 0x58]
mov rdi, rax
mov r10, qword [rsp + 0x60]
mov edx, dword [rsp + 0x74]
jmp 0x180130310
mov r9d, 0x65
mov rcx, r10
call fcn.1800ffd70
mov rcx, qword [rbp - 0x58]
mov edi, eax
mov r10, qword [rsp + 0x60]
mov edx, dword [rsp + 0x74]
jmp 0x180130310
mov eax, dword [rbp + 0x30]
lea r9, [rbp - 0x70]
mov dword [rbp - 0x40], eax
lea rdx, [rbp - 0x40]
mov eax, dword [rbp - 0x10]
mov dword [rbp - 0x70], eax
mov eax, edi
and eax, r8d
jmp 0x1801301c5
mov eax, r12d
sub eax, 0x292
je 0x1801302c5
cmp eax, 0x70
jne 0x180130310
cmp r14d, 4
jne 0x180130310
mov rax, qword [rbp - 0x60]
inc edx
mov r8d, dword [rbp]
mov dword [rsp + 0x74], edx
mov byte [rcx + rax], r8b
inc rcx
mov qword [rbp - 0x58], rcx
jmp 0x180130310
test r11d, r11d
je 0x180130309
mov eax, dword [rbp - 8]
lea r9, [rbp - 0x70]
mov dword [rbp - 0x40], eax
lea r8, [rbp - 0x30]
mov eax, edi
mov dword [rbp - 0x70], r15d
and eax, r11d
mov qword [rsp + 0x20], rbx
lea rdx, [rbp - 0x40]
mov dword [rbp - 0x30], eax
mov ecx, 0xff
call fcn.18007e4c0
mov rcx, qword [rbp - 0x58]
mov r10, qword [rsp + 0x60]
mov edx, dword [rsp + 0x74]
mov dword [rbp], eax
jmp 0x180130310
mov dword [rbp], 0xff
mov r8d, dword [rsp + 0x54]
add r12d, 0x70
mov r9d, dword [rsp + 0x50]
mov r11d, dword [rsp + 0x58]
cmp r12d, 0x372
jb 0x180130180
inc r13d
mov qword [rbp - 0x30], rdi
cmp r13d, dword [r10]
jl 0x180130170
mov r14, qword [rbp + 0x48]
mov r15d, dword [rbp - 0x18]
mov r12d, dword [rbp - 0x64]
mov eax, dword [rbp + 0x38]
lea rcx, [rbp - 0x70]
mov r8, r10
mov dword [rbp - 0x70], eax
mov edx, 0x129
call fcn.1800e7310
mov r10, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x54]
add r12d, 0x3c08
mov r9d, dword [rsp + 0x50]
mov r11d, dword [rsp + 0x58]
mov dword [rbp - 0x64], r12d
cmp r12d, 0x3c08
jbe 0x18012fff0
mov eax, dword [rsp + 0x78]
inc eax
mov dword [rsp + 0x78], eax
cmp eax, dword [r10 + 4]
jl 0x18012ffe0
mov r15, qword [rbp - 0x48]
mov ecx, dword [rbp - 0x78]
jmp 0x18013044f
cmp esi, 0x18
jne 0x1801303c0
mov dword [rbp - 0x18], 1
jmp 0x18013044f
cmp esi, 0x20
jne 0x18013044f
cmp r8d, 0xff
jne 0x18013044f
cmp r12d, 0xff00
jne 0x18013044f
cmp r9d, 0xff0000
jne 0x18013044f
cmp r11d, 0xff000000
jne 0x18013044f
mov dword [rbp - 0x18], 2
jmp 0x18013044f
mov eax, dword [rbp - 0x28]
neg eax
and eax, 3
mov dword [rbp + 0x38], eax
jmp 0x18013044f
mov eax, dword [rbp - 0x38]
lea rcx, [rbp - 0x70]
sub eax, r13d
mov r8, r10
sub eax, 0xe
mov edx, 0x129
mov dword [rbp - 0x70], eax
call fcn.1800e7310
mov r10, qword [rsp + 0x60]
mov ecx, dword [rbp - 0x78]
cmp esi, 0x18
jne 0x180130438
mov eax, dword [r10]
lea eax, [rax + rax*2]
mov dword [rbp - 0x28], eax
jmp 0x18013044f
cmp esi, 0x10
jne 0x180130447
mov eax, dword [r10]
add eax, eax
mov dword [rbp - 0x28], eax
jmp 0x18013044f
mov dword [rbp - 0x28], ebx
jmp 0x18013044f
mov dword [rbp - 0x18], ebx
mov r12d, dword [rsp + 0x70]
add ecx, 0x7d
mov r8d, dword [rsp + 0x54]
mov r9d, dword [rsp + 0x50]
mov r11d, dword [rsp + 0x58]
mov r13d, dword [rsp + 0x68]
mov dword [rbp - 0x78], ecx
cmp ecx, 0x58e
jb 0x18012fd55
jmp 0x18012edec
mov eax, dword [r10 + 4]
lea r8, [rbp + 0xa8]
imul eax, dword [r10]
mov r9d, 0x4a
xor edx, edx
mov qword [rsp + 0x20], rbx
xor ecx, ecx
imul eax, dword [rbp - 0x80]
mov qword [rbp + 0xa8], rax
call fcn.180054100
mov qword [rbp - 0x60], rax
cmp rax, 0
jne 0x18012ede7
mov r12d, 0x96
mov eax, r12d
sub eax, 0x96
je 0x1801304d6
cmp eax, 1
je case.0x18012e96f.32
jmp 0x18013050c
mov dword [rsp + 0x40], 0x12a
lea r9, str.outofmem
mov qword [rsp + 0x38], rbx
xor r8d, r8d
mov qword [rsp + 0x30], rbx
xor edx, edx
mov qword [rsp + 0x28], rbx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.180113e50
mov r15, rbx
mov qword [rbp - 0x48], rbx
inc r12d
cmp r12d, 0x98
jb 0x1801304c1
jmp 0x18012ede7
mov rcx, qword [rbp + 0xa0]
mov eax, dword [r10]
mov dword [rcx], eax
jmp 0x18012edec
cmp edx, 0xb7fd
je 0x18013054b
cmp edx, 0xc74f
jne 0x18012edec
mov rax, qword [rbp - 0x60]
jmp 0x18012e9e6
mov rcx, qword [rbp + 0x60]
mov eax, dword [r10 + 4]
mov dword [rcx], eax
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x18012edec
mov eax, dword [r10 + 8]
mov dword [rcx], eax
jmp 0x18012edec
lea r9, str.VPSRAWZrrkz
mov dword [rsp + 0x40], 0x12a
xor r8d, r8d
mov qword [rsp + 0x38], rbx
xor edx, edx
mov qword [rsp + 0x30], rbx
xor ecx, ecx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call fcn.180113e50
mov rax, rbx
jmp 0x18012e9e6
lea r9, str.bad_BMP
jmp 0x180130577