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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1d0
mov rdx, qword [rsp + 0x240]
mov esi, dword [rsp + 0x238]
mov rbp, rcx
mov al, byte [rbp + 0x250]
lea rdi, [rcx + 0x258]
xor r15d, r15d
mov rcx, qword [rdi]
mov dword [rsp + 0x120], esi
mov qword [rsp + 0x78], rdx
mov byte [rsp + 0x80], al
mov qword [rsp + 0xd8], rcx
cmp rdx, r15
je 0x1400d5c24
cmp word [rdx], r15w
jne 0x1400d5c30
lea r12d, [r15 + 1]
test al, 0x40
jne 0x1400d5be4
mov rcx, qword [rbp + 0x20]
mov r8d, r12d
xor edx, edx
call qword [sym.imp.USER32.dll_SetWindowRgn]
mov rcx, qword [rbp + 0xf0]
cmp rcx, r15
je 0x1400d5bdd
call qword [sym.imp.GDI32.dll_DeleteObject]
mov qword [rbp + 0xf0], r15
mov rcx, qword [rdi]
cmp rcx, r15
je 0x1400d5c06
test byte [rbp + 0x250], 0x20
je 0x1400d5bfd
call qword [0x14013cd90]
jmp 0x1400d5c03
call qword [sym.imp.GDI32.dll_DeleteObject]
mov qword [rdi], r15
mov rcx, qword [rbp + 0x20]
mov r8d, r12d
xor edx, edx
mov byte [rbp + 0x250], r15b
call qword [sym.imp.USER32.dll_InvalidateRect]
mov al, r12b
jmp 0x1400d64ce
mov rax, qword [rbp + 0x260]
mov qword [rsp + 0x78], rax
mov byte [rsp + 0x70], 2
cmp rcx, r15
jne 0x1400d5c41
mov byte [rbp + 0x250], r15b
mov rcx, qword [rbp + 0x20]
lea rdx, [rsp + 0x128]
mov dword [rsp + 0x128], r15d
mov dword [rsp + 0x12c], r15d
mov dword [rsp + 0x130], r15d
mov dword [rsp + 0x134], r15d
mov qword [rsp + 0x118], r15
call qword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [rsp + 0x130]
sub eax, dword [rsp + 0x128]
mov r11, qword [rsp + 0x78]
lea rcx, [0x14012a438]
mov dword [rsp + 0x108], eax
mov eax, dword [rsp + 0x134]
mov r8d, 4
sub eax, dword [rsp + 0x12c]
mov rdx, r11
mov qword [rsp + 0x168], r15
mov dword [rsp + 0x110], eax
lea rax, [rsp + 0x168]
mov qword [rsp + 0x88], r15
mov qword [rsp + 0xe8], rax
mov eax, r15d
mov r14, r15
mov qword [rsp + 0xd0], r15
mov qword [rsp + 0x100], r15
mov qword [rsp + 0x138], r15
mov qword [rsp + 0xf0], rax
mov byte [rsp + 0x81], r15b
mov byte [rsp + 0x238], r15b
mov r13b, r15b
call fcn.14005c788
mov ecx, 0x3e
lea r12d, [rcx - 0x3d]
cmp al, r15b
je 0x1400d5d76
mov edx, ecx
lea rcx, [rsp + 0x78]
add r11, 8
mov qword [rsp + 0x78], r11
call fcn.14007021c
mov rcx, qword [rsp + 0x78]
movzx ebx, word [rcx]
cmp bx, r15w
je 0x1400d5d4d
mov word [rcx], r15w
mov r8, qword [rbp + 0x20]
lea rcx, [rbp + 0xc0]
mov r9, r12
mov rdx, r11
call fcn.14007f764
cmp bx, r15w
je 0x1400d5d71
mov rax, qword [rsp + 0x78]
mov word [rax], bx
mov r11, qword [rsp + 0x78]
mov eax, 0x25
or r10, 0xffffffffffffffff
lea r15d, [rax - 5]
lea r8d, [rax + 3]
cmp ax, word [r11]
jne 0x1400d5eb1
lea rcx, [rsp + 0x78]
add r11, 2
mov qword [rsp + 0x78], r11
call fcn.14005b154
mov rdx, qword [rsp + 0x78]
movzx eax, word [rdx]
xor ecx, ecx
mov ebx, ecx
mov dword [rsp + 0x90], ecx
mov qword [rsp + 0xf0], rbx
cmp r8w, ax
jne 0x1400d5deb
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x78]
call fcn.140074838
mov eax, dword [rsp + 0x90]
mov qword [rsp + 0xf0], rax
jmp 0x1400d5e8a
cmp ax, 0x30
jb 0x1400d5df7
cmp ax, 0x39
jbe 0x1400d5e07
or ax, r15w
cmp ax, 0x61
jb 0x1400d5e80
cmp ax, 0x66
ja 0x1400d5e80
mov qword [rsp + 0xa8], rcx
lea rcx, [rsp + 0xa8]
mov r9, r10
mov r8, r10
call fcn.14006355c
mov rcx, qword [rsp + 0xa8]
call fcn.1400649f4
lea rcx, [rsp + 0xa8]
mov qword [rsp + 0xf0], rax
call fcn.14005b104
mov rdx, qword [rsp + 0x78]
xor r10d, r10d
mov r11b, r10b
movzx ecx, word [rdx]
cmp cx, 0x30
jb 0x1400d5e5e
cmp cx, 0x39
jbe 0x1400d5e6e
or cx, r15w
cmp cx, 0x61
jb 0x1400d5e80
cmp cx, 0x66
ja 0x1400d5e80
add rdx, 2
add r11b, r12b
cmp r11b, 8
mov qword [rsp + 0x78], rdx
jl 0x1400d5e4f
lea rcx, [rsp + 0x78]
call fcn.14005b154
mov rax, qword [rsp + 0x78]
mov ecx, 0x25
cmp cx, word [rax]
jne 0x1400d5ea2
add rax, 2
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x78]
call fcn.14005b154
mov r11, qword [rsp + 0x78]
mov eax, 0x2a
cmp ax, word [r11]
jne 0x1400d5f08
add r11, 2
mov qword [rsp + 0x78], r11
cmp ax, word [r11]
jne 0x1400d5ee0
add r11, 2
mov byte [rsp + 0x238], r12b
mov al, 0x42
mov qword [rsp + 0x78], r11
jmp 0x1400d5ee4
mov al, byte [rsp + 0x70]
mov ecx, 0x7e
cmp cx, word [r11]
jne 0x1400d5efa
add r11, 2
or al, 0x10
mov qword [rsp + 0x78], r11
or al, 4
mov qword [rsp + 0xe8], rdi
mov byte [rsp + 0x70], al
lea rcx, [rsp + 0x78]
call fcn.14005b154
mov rax, qword [rsp + 0x78]
xor edi, edi
lea ecx, [rdi + 0x3c]
mov qword [rsp + 0xe0], rdi
mov qword [rsp + 0xc0], rdi
mov dword [rsp + 0xa0], edi
mov dword [rsp + 0x84], edi
mov dword [rsp + 0xa8], edi
mov dword [rsp + 0xc8], edi
mov dword [rsp + 0xb0], edi
mov dword [rsp + 0x90], edi
cmp cx, word [rax]
jne 0x1400d609a
add rax, 2
lea edx, [rdi + 0x3e]
lea rcx, [rsp + 0x78]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x98], rax
call fcn.1400f5c6c
mov rbx, qword [rsp + 0x78]
cmp word [rbx], di
setne dil
xor eax, eax
cmp word [rbx], ax
je 0x1400d5f99
mov word [rbx], ax
add qword [rsp + 0x78], 2
mov eax, dword [rsp + 0x108]
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x98]
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x110]
mov dword [rsp + 0x84], eax
call fcn.140070224
lea rdx, [rsp + 0x84]
lea rcx, [rsp + 0x98]
call fcn.140070224
lea rdx, [rsp + 0xa8]
lea rcx, [rsp + 0x98]
call fcn.140070224
lea rdx, [rsp + 0xc8]
lea rcx, [rsp + 0x98]
call fcn.140070224
mov eax, dword [rsp + 0x90]
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x98]
mov dword [rsp + 0xa0], eax
mov dword [rsp + 0xb0], eax
call fcn.140070224
mov eax, dword [rsp + 0x84]
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x98]
mov dword [rsp + 0x84], eax
mov dword [rsp + 0x90], eax
call fcn.140070224
xor r10d, r10d
cmp dil, r10b
je 0x1400d607c
mov ecx, dword [rsp + 0xb0]
lea eax, [r10 + 0x3e]
mov dword [rsp + 0xb0], ecx
mov word [rbx], ax
jmp 0x1400d608a
mov eax, dword [rsp + 0xb0]
mov dword [rsp + 0xb0], eax
mov eax, dword [rsp + 0x90]
xor edi, edi
mov dword [rsp + 0x90], eax
lea rax, [rsp + 0x178]
cmp qword [rsp + 0xe8], rax
jne 0x1400d60be
cmp qword [rsp + 0xd8], rdi
je 0x1400d60be
cmp esi, edi
jle 0x1400d6557
lea rcx, [rsp + 0x78]
mov edx, r12d
call fcn.140079f50
mov rcx, qword [rsp + 0x78]
mov edx, 0x23
mov qword [rsp + 0xf8], rax
cmp dx, word [rcx]
jne 0x1400d6135
mov qword [rsp + 0xf8], rcx
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0xf8]
mov dword [rsp + 0x98], r12d
call fcn.140074838
movsxd r11, dword [rsp + 0x98]
cmp r11d, edi
jle 0x1400d6484
mov rcx, qword [0x14013cf70]
mov rdx, r11
call qword [sym.imp.USER32.dll_LoadBitmapW]
mov qword [rsp + 0x88], rax
jmp 0x1400d6484
cmp rax, rdi
je 0x1400d62d7
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0xf8]
mov r8d, 2
mov qword [rsp + 0xb8], r12
call fcn.1400d0b2c
mov rbx, qword [rsp + 0xb8]
mov rdi, rax
xor eax, eax
cmp rbx, rax
jbe 0x1400d618d
mov rcx, qword [rsp + 0x78]
lea r8d, [rax + 2]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov qword [rbp + 0x1e0], rax
xor eax, eax
cmp byte [rsp + 0x238], al
je 0x1400d6258
cmp qword [rbp + 0x1e0], rax
je 0x1400d62a1
cmp qword [rsp + 0x88], rax
jne 0x1400d64e9
cmp r13b, al
jne 0x1400d62b3
lea rcx, [rsp + 0x140]
call fcn.140063344
mov rcx, qword [rbp + 0x1e0]
xor r13d, r13d
lea r9, [rsp + 0x140]
mov r8, rdi
mov rdx, rbx
mov qword [rsp + 0x148], r13
mov qword [rsp + 0x150], r13
mov qword [rsp + 0x20], r13
call fcn.14001ea18
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x140]
call fcn.14006eaac
mov r14, qword [rsp + 0x100]
mov qword [rsp + 0x88], rax
mov al, byte [rsp + 0x238]
mov qword [rsp + 0xd0], r14
cmp al, r13b
je 0x1400d623b
cmp r14, r13
jne 0x1400d6280
xor ecx, ecx
mov r13b, r12b
cmp al, cl
je 0x1400d6294
cmp r14, rcx
jne 0x1400d6294
lea rcx, [rsp + 0x140]
call fcn.14005b104
xor eax, eax
mov rcx, qword [rbp + 0x1e0]
cmp rcx, rax
je 0x1400d619a
mov rdx, rbx
call qword [sym.imp.USER32.dll_LoadBitmapW]
mov qword [rsp + 0x88], rax
xor eax, eax
jmp 0x1400d619a
lea rcx, [rsp + 0x140]
call fcn.14005b104
xor edi, edi
jmp 0x1400d6553
lea rcx, [rsp + 0x140]
call fcn.14005b104
xor edi, edi
cmp qword [rsp + 0x88], rdi
jne 0x1400d64eb
jmp 0x1400d62b5
xor edi, edi
mov rcx, qword [rbp + 0x1e0]
cmp rcx, rdi
je 0x1400d648e
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [rbp + 0x1e0], rdi
jmp 0x1400d6484
lea rdx, [rsp + 0x82]
mov byte [rsp + 0x82], dil
call fcn.14007c730
mov qword [rsp + 0x88], rax
cmp rax, rdi
jne 0x1400d630a
cmp byte [rsp + 0x82], dil
je 0x1400d630a
xor al, al
jmp 0x1400d64ce
mov bl, byte [rsp + 0x238]
cmp bl, dil
je 0x1400d6395
cmp qword [rsp + 0x88], rdi
jne 0x1400d64eb
cmp r13b, dil
jne 0x1400d63dd
mov rcx, qword [rsp + 0x78]
xor edx, edx
mov r13b, r12b
call fcn.14001f1d4
mov r14, rax
mov qword [rsp + 0xd0], rax
cmp rax, rdi
je 0x1400d638b
cmp bl, dil
jne 0x1400d6553
lea rdx, [rsp + 0x88]
xor r8d, r8d
mov rcx, rax
call qword [0x14013cdf0]
cmp qword [rsp + 0x88], rdi
jne 0x1400d64eb
mov rcx, r14
call qword [0x14013cd90]
mov r14, rdi
mov qword [rsp + 0xd0], rdi
cmp bl, dil
je 0x1400d63cf
cmp r14, rdi
jne 0x1400d63cf
cmp qword [rsp + 0x88], rdi
jne 0x1400d64eb
mov rdx, qword [rsp + 0x78]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov dword [rsp + 0x28], 0x10
mov dword [rsp + 0x20], edi
call qword [sym.imp.USER32.dll_LoadImageW]
mov qword [rsp + 0x88], rax
jmp 0x1400d6316
cmp qword [rsp + 0x88], rdi
jne 0x1400d64eb
lea rcx, [0x14013e168]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call fcn.140061c44
mov rax, qword [0x14013d800]
mov ebx, 0xfffffffd
cmp rax, rdi
je 0x1400d6415
xor ecx, ecx
call rax
mov ebx, eax
cmp eax, edi
je 0x1400d6415
cmp eax, r12d
jne 0x1400d6415
call qword [0x14013d808]
mov rcx, qword [rsp + 0x78]
call fcn.14006e3a4
xor r13d, r13d
mov rdi, rax
mov qword [rsp + 0x138], rax
cmp rax, r13
je 0x1400d6463
mov r8, qword [rax]
lea rdx, [rsp + 0x88]
mov rcx, rax
call qword [r8 + 0x18]
cmp qword [rsp + 0x88], r13
jne 0x1400d6463
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 0x10]
xor edi, edi
mov qword [rsp + 0x138], rdi
jmp 0x1400d6465
xor edi, edi
mov rax, qword [0x14013d808]
cmp rax, rdi
je 0x1400d6477
cmp ebx, edi
jne 0x1400d6477
call rax
lea rcx, [0x14013e168]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp qword [rsp + 0x88], rdi
jne 0x1400d64eb
mov bl, byte [rsp + 0x81]
mov rcx, qword [rsp + 0x168]
cmp rcx, rdi
je 0x1400d64a8
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rax, qword [rsp + 0x138]
cmp rax, rdi
je 0x1400d64be
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x10]
cmp r14, rdi
je 0x1400d64cc
mov rcx, r14
call qword [0x14013cd90]
mov al, bl
mov rbx, qword [rsp + 0x220]
add rsp, 0x1d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
xor edi, edi
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0xe8]
mov qword [rcx], rax
mov rax, qword [rsp + 0x240]
cmp rax, rdi
je 0x1400d6522
lea rcx, [rbp + 0x260]
mov rdx, rax
call fcn.14007034c
mov rax, qword [rsp + 0x240]
cmp esi, edi
jg 0x1400d652b
cmp rax, rdi
je 0x1400d6553
mov rax, qword [rsp + 0xd8]
cmp rax, rdi
je 0x1400d6553
mov rcx, rax
test byte [rsp + 0x80], r15b
je 0x1400d654d
call qword [0x14013cd90]
jmp 0x1400d6553
call qword [sym.imp.GDI32.dll_DeleteObject]
cmp esi, edi
jg 0x1400d655d
mov esi, dword [rbp + 0x17c]
cmp esi, r12d
mov r13d, 0x60
mov qword [rsp + 0x100], r13
jl 0x1400d6578
mov ecx, r12d
cmp esi, r13d
jne 0x1400d657a
mov ecx, edi
cmp ecx, edi
mov dil, byte [rsp + 0x238]
mov eax, r13d
cmovne eax, esi
mov dword [rsp + 0x98], ecx
movsxd rbx, eax
xor eax, eax
mov qword [rsp + 0xb8], rbx
cmp dil, al
je 0x1400d67da
cmp r14, rax
je 0x1400d67da
lea rsi, [rbp + 0x258]
cmp qword [rsp + 0xe8], rsi
jne 0x1400d67da
movsxd r13, dword [rsp + 0xa0]
mov edi, dword [rsp + 0x84]
cmp r13d, eax
jg 0x1400d65e1
cmp edi, eax
jle 0x1400d67a4
lea rdx, [rsp + 0xe0]
mov rcx, r14
call qword [0x14013ce08]
lea rdx, [rsp + 0xc0]
mov rcx, r14
call qword [0x14013ce10]
movabs r8, 0x2aaaaaaaaaaaaaab
mov rcx, r13
mov rax, r8
mov r15, r13
movsxd r13, edi
imul rcx, rbx
mov r9d, 0x26200a
imul rcx
mov rbx, rdx
mov rax, r8
sar rbx, 4
mov rcx, rbx
shr rcx, 0x3f
add rbx, rcx
mov rcx, r13
mov r8d, ebx
shl r8d, 2
imul rcx, qword [rsp + 0xb8]
imul rcx
xor ecx, ecx
mov qword [rsp + 0x210], rcx
mov qword [rsp + 0xd0], rcx
mov rdi, rdx
sar rdi, 4
mov rax, rdi
shr rax, 0x3f
add rdi, rax
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov ecx, ebx
mov edx, edi
call qword [0x14013ce90]
mov rcx, qword [rsp + 0xd0]
lea rdx, [rsp + 0x210]
call qword [0x14013cea8]
mov rcx, qword [rsp + 0x210]
mov edx, 7
call qword [0x14013ce38]
movsxd r11, dword [rsp + 0xb0]
xor ecx, ecx
cmp r11d, ecx
jle 0x1400d677f
movsxd rax, dword [rsp + 0x90]
cmp eax, ecx
jle 0x1400d677f
imul r13, qword [rsp + 0xc0]
imul r15, qword [rsp + 0xe0]
mov rcx, rax
mov rax, r13
cqo
idiv rcx
mov r9, rax
mov rax, r15
cqo
idiv r11
mov r8, rax
movsxd rax, dword [rsp + 0xc8]
imul rax, qword [rsp + 0xc0]
cqo
idiv rcx
mov rcx, rax
movsxd rax, dword [rsp + 0xa8]
imul rax, qword [rsp + 0xe0]
cqo
idiv r11
xor edx, edx
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x58], rdx
mov dword [rsp + 0x50], 2
mov dword [rsp + 0x48], r9d
mov dword [rsp + 0x40], r8d
mov dword [rsp + 0x38], ecx
mov rcx, qword [rsp + 0x210]
xor r9d, r9d
xor r8d, r8d
mov rdx, r14
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], ebx
call qword [0x14013ce20]
mov rcx, qword [rsp + 0x210]
call qword [0x14013ce30]
mov rcx, r14
call qword [0x14013cd90]
mov r14, qword [rsp + 0xd0]
mov r15d, 0x20
mov rax, qword [rsp + 0x88]
xor ebx, ebx
cmp rax, rbx
je 0x1400d67c4
mov rcx, rax
call qword [sym.imp.GDI32.dll_DeleteObject]
mov qword [rsp + 0x88], rbx
mov dil, byte [rsp + 0x70]
mov qword [rsi], r14
mov r14, rbx
or dil, r15b
xor r15d, r15d
jmp 0x1400d6f07
xor edx, edx
lea rcx, [rsp + 0x18c]
mov dword [rsp + 0x188], eax
lea r8d, [rdx + 0x1c]
call fcn.140102a90
mov rsi, qword [rsp + 0xe8]
lea r8, [rsp + 0x188]
mov rcx, qword [rsi]
mov edx, r15d
call qword [sym.imp.GDI32.dll_GetObjectW]
movsxd rax, dword [rsp + 0x190]
mov edx, dword [rbp + 0x238]
mov r9d, dword [rbp + 0x248]
mov r8d, dword [rbp + 0x240]
movsxd r11, dword [rsp + 0x18c]
mov qword [rsp + 0xc0], rax
mov eax, dword [rsp + 0x108]
xor r10d, r10d
cmp dil, r10b
mov qword [rsp + 0xe0], r11
sete byte [rsp + 0x80]
sub eax, dword [rbp + 0x24c]
add r8d, dword [rbp + 0x23c]
sub eax, edx
add r9d, edx
sub eax, r9d
sub r9d, r9d
cdqe
mov qword [rsp + 0x160], rax
mov eax, dword [rsp + 0x110]
sub eax, dword [rbp + 0x244]
sub eax, edx
sub eax, r8d
sub r8d, r8d
movsxd rcx, eax
movsxd rax, r8d
mov qword [rsp + 0x170], rcx
mov rcx, qword [rsp + 0x218]
mov qword [rsp + 0x158], rax
movsxd rax, r9d
mov qword [rsp + 0xc8], rax
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rdi, rax
mov qword [rsp + 0x180], rax
mov rax, qword [rsi]
mov rdx, rax
mov rcx, rdi
mov qword [rsp + 0xd8], rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov rsi, r13
xor r13d, r13d
mov qword [rsp + 0x178], rax
movsxd rax, dword [rsp + 0xa0]
mov qword [rsp + 0x90], rbx
cmp eax, r13d
mov r15, rbx
jle 0x1400d692e
mov rcx, qword [rsp + 0xe0]
imul rax, rbx
lea r13, [rcx + rcx*2]
mov qword [rsp + 0x90], rax
shl r13, 5
mov qword [rsp + 0x100], r13
xor r13d, r13d
movsxd rax, dword [rsp + 0x84]
mov rbx, qword [rsp + 0xc0]
cmp eax, r13d
jle 0x1400d6957
lea rsi, [rbx + rbx*2]
mov r15, rax
shl rsi, 5
imul r15, qword [rsp + 0xb8]
xor edx, edx
lea rcx, [rsp + 0x1ac]
mov dword [rsp + 0x1a8], 0x28
lea r8d, [rdx + 0x24]
call fcn.140102a90
mov rdx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x218]
lea rax, [rsp + 0x1a8]
mov dword [rsp + 0x30], r13d
mov r9d, ebx
mov qword [rsp + 0x28], rax
xor r8d, r8d
mov qword [rsp + 0x20], r13
call qword [sym.imp.GDI32.dll_GetDIBits]
mov ecx, dword [rsp + 0x1ac]
mov r13d, eax
cmp eax, 0x57
mov eax, 0
cmove r13d, eax
mov dword [rsp + 0x1b8], eax
shl ecx, 2
mov eax, 0x20
mov dword [rsp + 0xa8], ecx
mov word [rsp + 0x1b6], ax
mov eax, dword [rsp + 0x190]
inc eax
imul eax, ecx
lea rcx, [rsp + 0xf8]
movsxd rdx, eax
call fcn.1400633a8
mov rbx, qword [rsp + 0xf8]
mov rcx, rbx
call fcn.14005b0b8
mov eax, dword [rsp + 0x190]
dec eax
cdqe
mov qword [rsp + 0xb0], rax
xor eax, eax
cmp r13d, eax
je 0x1400d6a5e
mov r9d, dword [rsp + 0xc0]
mov rdx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x218]
mov dword [rsp + 0x30], eax
lea rax, [rsp + 0x1a8]
xor r8d, r8d
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call qword [sym.imp.GDI32.dll_GetDIBits]
mov r13d, eax
xor eax, eax
cmp byte [rsp + 0x238], al
jne 0x1400d6a8b
mov r9d, dword [rsp + 0x110]
mov r8d, dword [rsp + 0x108]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.GDI32.dll_CreateRectRgn]
mov qword [rsp + 0x118], rax
xor eax, eax
cmp byte [rsp + 0x80], al
je 0x1400d6ce7
cmp r13d, eax
je 0x1400d6ce7
mov eax, 0x20
cmp ax, word [rsp + 0x1b6]
jne 0x1400d6ce7
movsxd r11, dword [rsp + 0xa8]
shl rsi, 0x20
xor edx, edx
mov rax, rsi
shr r11, 2
div r15
mov qword [rsp + 0x108], r11
mov rsi, rax
mov qword [rsp + 0x110], rax
mov rax, qword [rsp + 0xf0]
mov ecx, eax
shr ecx, 0x10
movzx r8d, cl
movzx ecx, al
and eax, 0xff00
shl ecx, 0x10
or r8d, ecx
or r8d, eax
movsxd rax, dword [rsp + 0xc8]
cmp rax, qword [rsp + 0x160]
mov dword [rsp + 0xa8], r8d
jge 0x1400d6ce7
mov r14, qword [rsp + 0x158]
mov r15, qword [rsp + 0x100]
mov r9, qword [rsp + 0x170]
mov rbp, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x90]
movsxd rdi, r14d
mov qword [rsp + 0xf0], rdi
imul rax, r15
mov r13d, r14d
cqo
idiv rcx
cmp rdi, r9
mov r10, rax
mov qword [rsp + 0xd8], rax
jge 0x1400d6cb3
mov r15, qword [rsp + 0xc8]
mov r14, qword [rsp + 0x118]
mov rcx, rdi
xor edi, edi
mov rbp, qword [rsp + 0xb0]
or edx, 0xffffffff
cmp rcx, r9
jge 0x1400d6bd2
imul rcx, rsi
mov eax, 0x80000000
add rcx, rax
mov rax, rbp
shr rcx, 0x20
sub rax, rcx
imul rax, r11
cmp rax, rdi
jl 0x1400d6bc7
add rax, r10
mov ecx, dword [rbx + rax*4]
and ecx, 0xffffff
cmp r8d, ecx
je 0x1400d6bcf
add r13d, r12d
movsxd rcx, r13d
jmp 0x1400d6b92
mov edx, r13d
movsxd rax, r13d
cmp rax, r9
jge 0x1400d6c1f
mov r14d, 0x80000000
imul rax, rsi
mov rcx, rbp
add rax, r14
shr rax, 0x20
sub rcx, rax
imul rcx, r11
cmp rcx, rdi
jl 0x1400d6c17
lea rax, [rcx + r10]
mov ecx, dword [rbx + rax*4]
and ecx, 0xffffff
cmp r8d, ecx
jne 0x1400d6c17
add r13d, r12d
movsxd rax, r13d
cmp rax, r9
jl 0x1400d6be0
mov r14, qword [rsp + 0x118]
cmp edx, edi
jl 0x1400d6c7c
lea r8d, [r15 + 1]
mov r9d, r13d
mov ecx, r15d
call qword [sym.imp.GDI32.dll_CreateRectRgn]
mov r9d, 3
mov rdx, r14
mov r8, rax
mov rcx, r14
mov rsi, rax
call qword [sym.imp.GDI32.dll_CombineRgn]
mov rcx, rsi
call qword [sym.imp.GDI32.dll_DeleteObject]
mov r8d, dword [rsp + 0xa8]
mov r9, qword [rsp + 0x170]
mov r10, qword [rsp + 0xd8]
mov r11, qword [rsp + 0x108]
mov rsi, qword [rsp + 0x110]
add r13d, r12d
movsxd rcx, r13d
cmp rcx, r9
jl 0x1400d6b87
mov r15, qword [rsp + 0x100]
mov rbp, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0x90]
mov r14, qword [rsp + 0x158]
add ebp, r12d
movsxd rax, ebp
mov qword [rsp + 0xc8], rbp
cmp rax, qword [rsp + 0x160]
jl 0x1400d6b52
mov rdi, qword [rsp + 0x180]
mov rbp, qword [rsp + 0x210]
mov r14, qword [rsp + 0xd0]
mov eax, dword [rsp + 0xa0]
mov r10d, dword [rsp + 0x84]
xor r15d, r15d
cmp dword [rsp + 0x98], r15d
jne 0x1400d6d11
cmp eax, r15d
jne 0x1400d6d11
cmp r10d, r15d
je 0x1400d6ece
cmp eax, r15d
mov rcx, qword [rsp + 0xe0]
mov r9, qword [rsp + 0xc0]
mov rsi, rcx
mov r13, r9
jg 0x1400d6d3a
mov rcx, r12
mov eax, r12d
mov qword [rsp + 0xe0], rcx
cmp r10d, r15d
jg 0x1400d6d4d
mov r9, r12
mov qword [rsp + 0xc0], r12
mov r10d, r12d
movsxd r8, dword [rsp + 0xb8]
cdqe
lea rcx, [rcx + rcx*2]
shl rcx, 5
imul rax, r8
imul rax, rsi
cqo
idiv rcx
lea rcx, [r9 + r9*2]
shl rcx, 5
mov r15, rax
movsxd rax, r10d
imul rax, r8
imul rax, r13
cqo
idiv rcx
mov rcx, qword [rsp + 0x218]
mov qword [rsp + 0x210], rax
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov r8d, dword [rsp + 0x210]
mov rcx, qword [rsp + 0x218]
mov edx, r15d
mov rbx, rax
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
lea rcx, [rsp + 0x140]
mov rdx, rbx
mov r8, rax
call fcn.14005b028
mov rax, qword [rsp + 0xe8]
mov r11, qword [rsp + 0x140]
mov rcx, qword [rax]
mov qword [rax], r11
mov qword [rsp + 0x140], rcx
xor ecx, ecx
mov qword [rsp + 0xb8], rcx
cmp r14, rcx
je 0x1400d6e62
lea rdx, [rsp + 0xb8]
mov rcx, rbx
call qword [0x14013ce28]
xor ecx, ecx
cmp eax, ecx
jne 0x1400d6e62
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x58], rcx
mov dword [rsp + 0x50], 2
mov dword [rsp + 0x48], r13d
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], ecx
mov rcx, qword [rsp + 0xb8]
mov dword [rsp + 0x28], eax
xor r9d, r9d
xor r8d, r8d
mov rdx, r14
mov dword [rsp + 0x20], r15d
call qword [0x14013ce20]
jmp 0x1400d6e9d
mov rax, qword [rsp + 0x210]
mov dword [rsp + 0x50], 0xcc0020
mov dword [rsp + 0x48], r13d
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], ecx
mov rcx, rbx
mov r9d, r15d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], eax
call qword [sym.imp.GDI32.dll_StretchBlt]
mov rcx, qword [rsp + 0xb8]
xor r15d, r15d
cmp rcx, r15
je 0x1400d6eb3
call qword [0x14013ce30]
lea rcx, [rsp + 0x140]
call fcn.14005b07c
cmp rbx, r15
je 0x1400d6ece
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteDC]
mov rax, qword [rsp + 0x178]
cmp rax, r15
je 0x1400d6ee7
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SelectObject]
lea rcx, [rsp + 0xf8]
call fcn.14005b104
cmp rdi, r15
je 0x1400d6f02
mov rcx, rdi
call qword [sym.imp.GDI32.dll_DeleteDC]
mov dil, byte [rsp + 0x70]
cmp byte [rsp + 0x238], r15b
jne 0x1400d6f3c
mov rsi, qword [rsp + 0x118]
mov rcx, qword [rbp + 0x20]
mov rbx, qword [rbp + 0xf0]
mov rdx, rsi
mov r8d, r12d
call qword [sym.imp.USER32.dll_SetWindowRgn]
mov qword [rbp + 0xf0], rsi
mov rax, rbx
jmp 0x1400d6f44
mov rax, qword [rsp + 0x118]
cmp rax, r15
je 0x1400d6f52
mov rcx, rax
call qword [sym.imp.GDI32.dll_DeleteObject]
mov byte [rbp + 0x250], dil
xor edi, edi
mov bl, r12b
cmp dword [rsp + 0x120], edi
jg 0x1400d6f75
cmp qword [rsp + 0x240], rdi
je 0x1400d6495
mov rcx, qword [rbp + 0x20]
mov r8d, r12d
xor edx, edx
call qword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x1400d6495