Function at 0x140068560
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x3c8
mov rax, qword [0x140131048]
xor rax, rsp
mov qword [rsp + 0x3a0], rax
xor esi, esi
mov dword [rsp + 0x28], r9d
mov dword [rsp + 0x30], r8d
mov r13d, r9d
mov qword [rsp + 0x40], rcx
mov edi, r8d
mov dword [rsp + 0x38], 3
mov rbx, rdx
mov qword [rcx + 8], rsi
mov r15, rcx
mov qword [rcx + 0x1c], rsi
mov r12d, esi
mov qword [rcx + 0x10], rsi
cmp r8d, 1
jge 0x140068601
mov rcx, rdx
call fcn.14009eba0
mov rcx, rbx
movzx edi, al
call fcn.14009eba0
cmp dil, 0x42
jne 0x140068649
cmp al, 0x4d
jne 0x140068649
mov rcx, rbx
call fcn.14009ec30
mov rcx, rbx
call fcn.14009eca0
mov rcx, rbx
call fcn.14009eca0
mov rcx, rbx
call fcn.14009ec30
mov edi, dword [rsp + 0x30]
mov r12d, eax
mov rcx, rbx
mov qword [rsp + 0x3c0], rbp
call fcn.14009ec30
mov ebp, eax
cmp dword [rbx + 0x30], esi
je 0x140068656
mov rdi, qword [rbx + 0x28]
mov rcx, rbx
call fcn.14009ed50
mov r9d, eax
lea rcx, str.__d__Fl_BMP_Image:__s___unexpected_EOF_or_read_error_at_offset__ld
mov r8, rdi
mov edx, 0xb6
call qword [case.0x140083a43.0]
mov dword [r15 + 0x14], 0xfffffffd
jmp 0x140068805
mov dword [r15 + 0x14], 0xfffffffd
jmp 0x14006880d
mov qword [rsp + 0x3b8], r14
mov byte [rsp + 0x2c], sil
mov dword [rsp + 0x60], 0xffffffff
cmp ebp, 0x28
jge 0x1400686b2
mov rcx, rbx
call fcn.14009eca0
movzx r13d, ax
mov rcx, rbx
mov dword [rsp + 0x28], r13d
call fcn.14009eca0
movzx eax, ax
mov rcx, rbx
mov dword [rsp + 0x30], eax
call fcn.14009eca0
mov rcx, rbx
call fcn.14009eca0
mov dword [rsp + 0x3c], esi
mov edi, esi
movzx r14d, ax
lea esi, [rbp - 0xc]
jmp 0x1400687cb
test edi, edi
jle 0x1400686cd
test r13d, r13d
jle 0x1400686cd
mov rcx, rbx
call fcn.14009ec30
mov rcx, rbx
call fcn.14009ec30
jmp 0x140068703
mov rcx, rbx
call fcn.14009ec30
mov rcx, rbx
mov dword [rsp + 0x28], eax
mov r13d, eax
mov dword [r15 + 8], eax
mov dword [r15 + 0x1c], eax
call fcn.14009ec30
mov ecx, eax
neg ecx
cmovs ecx, eax
sar eax, 0x1f
and eax, 2
mov dword [rsp + 0x30], ecx
dec eax
mov dword [rsp + 0x60], eax
mov rcx, rbx
call fcn.14009eca0
mov rcx, rbx
call fcn.14009eca0
mov rcx, rbx
movzx r14d, ax
call fcn.14009ec30
mov rcx, rbx
mov dword [rsp + 0x3c], eax
call fcn.14009ec30
mov rcx, rbx
mov r15d, eax
call fcn.14009ec30
mov rcx, rbx
call fcn.14009ec30
mov rcx, rbx
call fcn.14009ec30
mov rcx, rbx
mov edi, eax
call fcn.14009ec30
cmp dword [rsp + 0x3c], 0
lea esi, [rbp - 0x28]
jne 0x1400687c6
cmp r14d, 8
jb 0x1400687c6
xor edx, edx
mov eax, 0x20
div r14d
cmp r13d, eax
jle 0x1400687c6
lea ecx, [r15 + r15]
mov r8d, r14d
mov r15, qword [rsp + 0x40]
lea eax, [r13 + 7]
shr r8d, 3
cdq
imul r8d, r13d
and edx, 7
add eax, edx
sar eax, 3
add eax, 3
and eax, 0xfffffffc
add r8d, 3
and r8d, 0xfffffffc
add r8d, eax
mov eax, dword [rsp + 0x30]
imul r8d, eax
cmp r8d, ecx
jne 0x1400687cb
cdq
mov byte [rsp + 0x2c], 1
sub eax, edx
mov dword [rsp + 0x38], 4
sar eax, 1
mov dword [rsp + 0x30], eax
jmp 0x1400687cb
mov r15, qword [rsp + 0x40]
cmp dword [rbx + 0x30], 0
je 0x14006882e
mov rdi, qword [rbx + 0x28]
mov rcx, rbx
call fcn.14009ed50
mov r9d, eax
mov r8, rdi
mov edx, 0xed
lea rcx, str.__d__Fl_BMP_Image:__s___unexpected_EOF_or_read_error_at_offset__ld
call qword [case.0x140083a43.0]
mov dword [r15 + 0x14], 0xfffffffd
mov r14, qword [rsp + 0x3b8]
mov rbp, qword [rsp + 0x3c0]
mov rcx, qword [rsp + 0x3a0]
xor rcx, rsp
call fcn.1400ea730
add rsp, 0x3c8
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
test esi, esi
jle 0x140068845
mov rcx, rbx
call fcn.14009ed50
mov rcx, rbx
lea edx, [rsi + rax]
call fcn.14009ecf0
cmp dword [rbx + 0x30], 0
je 0x140068864
mov rdi, qword [rbx + 0x28]
mov rcx, rbx
call fcn.14009ed50
mov r9d, eax
mov r8, rdi
mov edx, 0xf5
jmp 0x1400687e8
test r13d, r13d
je 0x1400687f5
mov esi, dword [rsp + 0x30]
test esi, esi
je 0x1400687f5
test r14d, r14d
je 0x1400687f5
test edi, edi
jne 0x140068894
cmp r14d, 8
ja 0x140068914
mov ecx, r14d
mov edi, 1
shl edi, cl
test edi, edi
jle 0x140068914
movsxd rsi, edi
cmp ebp, 0xc
jle 0x1400688da
lea rdi, [rsp + 0xa1]
mov rcx, rbx
call fcn.14009eba0
mov rcx, rbx
mov byte [rdi - 1], al
call fcn.14009eba0
mov rcx, rbx
mov byte [rdi], al
call fcn.14009eba0
mov rcx, rbx
mov byte [rdi + 1], al
call fcn.14009eba0
lea rdi, [rdi + 3]
sub rsi, 1
jne 0x1400688a6
jmp 0x140068910
test edi, edi
jle 0x140068910
lea rdi, [rsp + 0xa1]
mov rcx, rbx
call fcn.14009eba0
mov rcx, rbx
mov byte [rdi - 1], al
call fcn.14009eba0
mov rcx, rbx
mov byte [rdi], al
call fcn.14009eba0
mov byte [rdi + 1], al
lea rdi, [rdi + 3]
sub rsi, 1
jne 0x1400688e6
mov esi, dword [rsp + 0x30]
cmp dword [rbx + 0x30], 0
je 0x140068936
mov rdi, qword [rbx + 0x28]
mov rcx, rbx
call fcn.14009ed50
mov r9d, eax
mov r8, rdi
mov edx, 0x10a
jmp 0x1400687e8
cmp r14d, 0x10
jne 0x140068958
mov rcx, rbx
call fcn.14009ec30
mov ebp, dword [rsp + 0x38]
xor ecx, ecx
cmp eax, 0xf800
sete cl
mov dword [rsp + 0x64], ecx
jmp 0x140068974
mov ebp, dword [rsp + 0x38]
cmp r14d, 0x20
mov eax, 4
mov dword [rsp + 0x64], 0
cmove ebp, eax
mov dword [rsp + 0x38], ebp
test r12d, r12d
je 0x140068984
mov edx, r12d
mov rcx, rbx
call fcn.14009ecf0
cmp dword [rbx + 0x30], 0
je 0x1400689a6
mov rdi, qword [rbx + 0x28]
mov rcx, rbx
call fcn.14009ed50
mov r9d, eax
mov r8, rdi
mov edx, 0x116
jmp 0x1400687e8
movsxd rdi, dword [rsp + 0x28]
mov r12d, ebp
movsxd rcx, esi
imul rcx, rdi
mov qword [rsp + 0x58], r12
imul rcx, r12
cmp rcx, qword [0x14012d100]
jbe 0x1400689dd
mov rdx, qword [rbx + 0x28]
lea rcx, str.BMP_file___s__is_too_large__n
call qword [0x14012fb78]
jmp 0x1400687f5
mov eax, esi
imul eax, edi
imul eax, ebp
movsxd rcx, eax
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
xor r8d, r8d
mov qword [r15 + 0x30], rax
xor ebp, ebp
mov dword [r15 + 0x38], 1
xor esi, esi
mov dword [rsp + 0x34], r8d
xor r13b, r13b
mov dword [rsp + 0x4c], ebp
xor r15d, r15d
mov dword [rsp + 0x48], esi
mov byte [rsp + 0x20], r13b
cmp dword [rsp + 0x60], esi
jge 0x140068a32
mov ecx, dword [rsp + 0x30]
dec ecx
mov dword [rsp + 0x68], 0xffffffff
mov dword [rsp + 0x50], ecx
jmp 0x140068a43
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x68], eax
lea ecx, [rax - 1]
mov dword [rsp + 0x50], ecx
xor ecx, ecx
mov rax, qword [rsp + 0xa5]
lea r11d, [r14 - 1]
mov rdx, qword [rsp + 0xa4]
mov r9, qword [rsp + 0xa1]
mov r10, qword [rsp + 0xa0]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0xa3]
mov qword [rsp + 0x90], rdx
mov rdx, qword [rsp + 0xa2]
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x70], rdx
mov dword [rsp + 0x24], ecx
mov dword [rsp + 0x6c], r11d
mov qword [rsp + 0x78], r9
mov qword [rsp + 0x80], r10
nop word [rax + rax]
mov eax, ecx
imul eax, edi
imul eax, dword [rsp + 0x38]
movsxd r14, eax
mov rax, qword [rsp + 0x40]
add r14, qword [rax + 0x30]
cmp r11d, 0x1f
ja case.default.0x140068aee
movsxd rax, r11d
lea r11, [0x140000000]
movzx eax, byte [r11 + rax + 0x69244]
mov ecx, dword [r11 + rax*4 + 0x69228]
add rcx, r11
jmp rcx
cmp dword [rsp + 0x28], 0
mov r15d, edi
mov dil, 0x80
jle 0x140068b9b
mov r12, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x90]
mov rbp, qword [rsp + 0x98]
nop dword [rax]
cmp dil, 0x80
jne 0x140068b44
mov rcx, rbx
call fcn.14009eba0
mov rdx, qword [rsp + 0x70]
movzx r13d, al
mov r9, qword [rsp + 0x78]
mov r10, qword [rsp + 0x80]
test r13b, dil
je 0x140068b57
movzx eax, bpl
movzx ecx, sil
movzx edx, r12b
jmp 0x140068b5f
movzx eax, r10b
movzx ecx, r9b
mov byte [r14], dl
mov byte [r14 + 1], cl
mov byte [r14 + 2], al
cmp dil, 1
jbe 0x140068b75
shr dil, 1
jmp 0x140068b78
mov dil, 0x80
mov rdx, qword [rsp + 0x70]
dec r15d
add r14, 3
test r15d, r15d
jg 0x140068b20
mov esi, dword [rsp + 0x48]
mov ebp, dword [rsp + 0x4c]
mov r12, qword [rsp + 0x58]
mov byte [rsp + 0x20], r13b
mov edi, dword [rsp + 0x28]
lea eax, [rdi + 7]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov r15d, eax
test al, 3
je case.0x140068aee.1
mov rcx, rbx
call fcn.14009eba0
inc r15d
test r15b, 3
jne 0x140068bb6
jmp case.0x140068aee.1
mov r12d, edi
mov r13b, 0xf0
test edi, edi
jle 0x140068d17
nop word [rax + rax]
test ebp, ebp
jne 0x140068c96
cmp dword [rsp + 0x3c], 2
je 0x140068bff
mov ebp, 2
mov r8d, 0xffffffff
jmp 0x140068c91
test esi, esi
jle 0x140068c11
mov rcx, rbx
dec esi
call fcn.14009eba0
test esi, esi
jg 0x140068c03
mov rcx, rbx
call fcn.14009eba0
movzx ebp, al
mov rcx, rbx
test al, al
jne 0x140068c88
call fcn.14009eba0
movzx ebp, al
test al, al
jne 0x140068c37
inc r12d
jmp 0x140068cfe
cmp ebp, 1
je 0x140068d0f
cmp ebp, 2
jne 0x140068c6a
mov rcx, rbx
call fcn.14009eba0
mov rcx, rbx
movzx edi, al
call fcn.14009eba0
movzx ebp, al
imul ebp, edi
mov edi, dword [rsp + 0x28]
imul ebp, edi
xor r8d, r8d
jmp 0x140068c91
mov ecx, ebp
mov eax, 4
and ecx, 3
mov r8d, 0xffffffff
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
mov esi, eax
and esi, 1
jmp 0x140068c91
call fcn.14009eba0
movzx r8d, al
mov dword [rsp + 0x34], r8d
dec ebp
cmp r13b, 0xf0
jne 0x140068cca
test r8d, r8d
jns 0x140068cbb
mov rcx, rbx
call fcn.14009eba0
movzx r15d, al
mov r13b, 0xf
mov eax, r15d
sar rax, 4
jmp 0x140068cd0
mov eax, r8d
mov r15d, r8d
sar rax, 4
mov r13b, 0xf
jmp 0x140068cd0
mov r13b, 0xf0
mov eax, r15d
and eax, 0xf
lea rcx, [rax + rax*2]
movzx eax, byte [rsp + rcx + 0xa2]
mov byte [r14], al
movzx eax, byte [rsp + rcx + 0xa1]
mov byte [r14 + 1], al
movzx eax, byte [rsp + rcx + 0xa0]
mov byte [r14 + 2], al
add r14, 3
mov r8d, dword [rsp + 0x34]
dec r12d
test r12d, r12d
jg 0x140068be0
mov dword [rsp + 0x4c], ebp
mov dword [rsp + 0x48], esi
cmp dword [rbx + 0x30], 0
jne 0x140069071
cmp dword [rsp + 0x3c], 0
jne 0x140068d48
lea eax, [rdi + 1]
cdq
sub eax, edx
sar eax, 1
mov r15d, eax
test al, 3
je 0x140068d48
mov rcx, rbx
call fcn.14009eba0
inc r15d
test r15b, 3
jne 0x140068d37
movzx r13d, byte [rsp + 0x20]
mov r12, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x24]
cmp dword [rbx + 0x30], 0
jne 0x1400691f3
add ecx, dword [rsp + 0x60]
mov dword [rsp + 0x24], ecx
cmp ecx, dword [rsp + 0x68]
je 0x1400690b0
mov r8d, dword [rsp + 0x34]
mov rdx, qword [rsp + 0x70]
mov r9, qword [rsp + 0x78]
mov r10, qword [rsp + 0x80]
mov r11d, dword [rsp + 0x6c]
jmp 0x140068ab0
mov r12d, edi
test edi, edi
jle 0x140068ecc
nop
cmp dword [rsp + 0x3c], 1
je 0x140068db7
mov ebp, 1
mov r8d, 0xffffffff
jmp 0x140068e58
test ebp, ebp
jne 0x140068e5d
test esi, esi
jle 0x140068dd5
mov rcx, rbx
dec esi
call fcn.14009eba0
test esi, esi
jg 0x140068dc3
mov dword [rsp + 0x48], esi
cmp dword [rbx + 0x30], 0
mov rcx, rbx
jne 0x140069087
call fcn.14009eba0
movzx ebp, al
mov rcx, rbx
test al, al
jne 0x140068e4f
call fcn.14009eba0
movzx ebp, al
mov dword [rsp + 0x4c], ebp
test al, al
jne 0x140068e09
inc r12d
jmp 0x140068ebb
cmp ebp, 1
je 0x140068d4e
cmp ebp, 2
jne 0x140068e3c
mov rcx, rbx
call fcn.14009eba0
mov rcx, rbx
movzx edi, al
call fcn.14009eba0
movzx ebp, al
imul ebp, edi
mov edi, dword [rsp + 0x28]
imul ebp, edi
xor r8d, r8d
jmp 0x140068e58
mov esi, ebp
mov r8d, 0xffffffff
neg esi
and esi, 1
mov dword [rsp + 0x48], esi
jmp 0x140068e58
call fcn.14009eba0
movzx r8d, al
mov dword [rsp + 0x34], r8d
cmp dword [rbx + 0x30], 0
jne 0x14006909a
test r8d, r8d
jns 0x140068e7a
mov rcx, rbx
call fcn.14009eba0
movzx r15d, al
jmp 0x140068e7d
mov r15d, r8d
movsxd rax, r15d
dec ebp
mov dword [rsp + 0x4c], ebp
lea rcx, [rax + rax*2]
movzx eax, byte [rsp + rcx + 0xa2]
mov byte [r14], al
movzx eax, byte [rsp + rcx + 0xa1]
mov byte [r14 + 1], al
movzx eax, byte [rsp + rcx + 0xa0]
mov byte [r14 + 2], al
add r14, 3
cmp byte [rsp + 0x2c], 0
je 0x140068ebb
inc r14
mov r8d, dword [rsp + 0x34]
dec r12d
test r12d, r12d
jg 0x140068da0
cmp dword [rsp + 0x3c], 0
jne 0x140068d4e
mov r15d, edi
test dil, 3
je 0x140068d4e
mov rcx, rbx
call fcn.14009eba0
inc r15d
test r15b, 3
jne 0x140068ee4
jmp 0x140068d4e
mov r15d, edi
test edi, edi
jle 0x140068f9e
cmp dword [rsp + 0x64], 0
je 0x140068f55
nop dword [rax]
mov rcx, rbx
call fcn.14009eba0
mov rcx, rbx
movzx edi, al
call fcn.14009eba0
movzx ecx, dil
dec r15d
shl cl, 3
mov byte [r14 + 2], cl
movzx ecx, al
shr dil, 3
and al, 0xf8
shl cl, 5
and dil, 0x1c
or dil, cl
mov byte [r14], al
mov byte [r14 + 1], dil
add r14, r12
test r15d, r15d
jg 0x140068f10
jmp 0x140068f9a
mov rcx, rbx
call fcn.14009eba0
mov rcx, rbx
movzx edi, al
call fcn.14009eba0
movzx ecx, dil
dec r15d
shl cl, 3
mov byte [r14 + 2], cl
movzx ecx, al
shr dil, 2
and al, 0xfc
shl cl, 6
and dil, 0x38
or dil, cl
add al, al
mov byte [r14 + 1], dil
mov byte [r14], al
add r14, r12
test r15d, r15d
jg 0x140068f55
mov edi, dword [rsp + 0x28]
lea r15d, [rdi + rdi]
test r15b, 3
je case.0x140068aee.1
nop dword [rax]
mov rcx, rbx
call fcn.14009eba0
inc r15d
test r15b, 3
jne 0x140068fb0
jmp case.0x140068aee.1
cmp dword [rsp + 0x28], 0
jle 0x140068ffc
nop dword [rax]
mov rcx, rbx
call fcn.14009eba0
mov rcx, rbx
mov byte [r14 + 2], al
call fcn.14009eba0
mov rcx, rbx
mov byte [r14 + 1], al
call fcn.14009eba0
mov byte [r14], al
dec edi
add r14, r12
test edi, edi
jg 0x140068fd0
mov edi, dword [rsp + 0x28]
lea r15d, [rdi + rdi*2]
test r15b, 3
je case.0x140068aee.1
nop
mov rcx, rbx
call fcn.14009eba0
inc r15d
test r15b, 3
jne 0x140069010
jmp case.0x140068aee.1
cmp dword [rsp + 0x28], 0
jle 0x140069068
nop dword [rax]
mov rcx, rbx
call fcn.14009eba0
mov rcx, rbx
mov byte [r14 + 2], al
call fcn.14009eba0
mov rcx, rbx
mov byte [r14 + 1], al
call fcn.14009eba0
mov rcx, rbx
mov byte [r14], al
call fcn.14009eba0
mov byte [r14 + 3], al
dec edi
add r14, r12
test edi, edi
jg 0x140069030
mov edi, dword [rsp + 0x28]
jmp case.0x140068aee.1
mov rdi, qword [rbx + 0x28]
mov rcx, rbx
call fcn.14009ed50
mov edx, 0x18b
jmp 0x140069204
mov rdi, qword [rbx + 0x28]
call fcn.14009ed50
mov edx, 0x1a2
jmp 0x140069204
mov rdi, qword [rbx + 0x28]
mov rcx, rbx
call fcn.14009ed50
mov edx, 0x1b9
jmp 0x140069204
cmp byte [rsp + 0x2c], 0
je 0x1400691ae
mov r8d, dword [rsp + 0x50]
test r8d, r8d
js 0x1400691ae
lea eax, [rdi + 7]
mov ecx, r8d
imul ecx, edi
cdq
and edx, 7
imul ecx, dword [rsp + 0x38]
lea r12d, [rdx + rax]
sar r12d, 3
movsxd r14, ecx
mov ecx, edi
imul ecx, dword [rsp + 0x38]
neg ecx
movsxd r15, ecx
mov ecx, 0xff
jmp 0x140069104
mov edi, dword [rsp + 0x28]
mov rax, qword [rsp + 0x40]
mov ebp, edi
mov dil, 0x80
mov rsi, qword [rax + 0x30]
add rsi, 3
add rsi, r14
cmp dword [rsp + 0x28], 0
jle 0x140069176
cmp dil, 0x80
jne 0x14006914b
mov rcx, rbx
call fcn.14009eba0
test al, dil
movzx r13d, al
mov eax, 0xff
mov ecx, 0
cmove ecx, eax
shr dil, 1
mov byte [rsi], cl
mov ecx, eax
jmp 0x140069166
test dil, r13b
mov eax, 0
cmove eax, ecx
mov byte [rsi], al
cmp dil, 1
jbe 0x140069163
shr dil, 1
jmp 0x140069166
mov dil, 0x80
add rsi, qword [rsp + 0x58]
dec ebp
test ebp, ebp
jg 0x140069120
mov r8d, dword [rsp + 0x50]
mov edi, r12d
test r12b, 3
je 0x140069195
nop
mov rcx, rbx
call fcn.14009eba0
inc edi
test dil, 3
jne 0x140069180
mov r8d, dword [rsp + 0x50]
dec r8d
add r14, r15
mov dword [rsp + 0x50], r8d
mov ecx, 0xff
test r8d, r8d
jns 0x140069100
cmp dword [rbx + 0x30], 0
je 0x1400691c7
mov rdi, qword [rbx + 0x28]
mov rcx, rbx
call fcn.14009ed50
mov edx, 0x211
jmp 0x140069204
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0x28]
mov dword [rcx + 8], eax
mov dword [rcx + 0x1c], eax
mov eax, dword [rsp + 0x30]
mov dword [rcx + 0xc], eax
mov dword [rcx + 0x20], eax
mov eax, dword [rsp + 0x38]
mov dword [rcx + 0x10], eax
mov dword [rcx + 0x14], 0
jmp 0x1400687fd
mov rdi, qword [rbx + 0x28]
mov rcx, rbx
call fcn.14009ed50
mov edx, 0x1fa
mov r9d, eax
lea rcx, str.__d__Fl_BMP_Image:__s___unexpected_EOF_or_read_error_at_offset__ld
mov r8, rdi
call qword [case.0x140083a43.0]
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0xfffffffd
jmp 0x1400687fd