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

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
mov eax, 0x15e0
call fcn.180188080
sub rsp, rax
mov qword [rsp + 0xd0], 0xfffffffffffffffe
mov edi, r9d
mov rbx, rdx
mov rdx, qword [rsp + 0x1620]
test rdx, rdx
jne 0x180062a75
xor eax, eax
jmp 0x180064871
cmp r8d, 0xffffffff
jne 0x180062a89
xor esi, esi
mov r8d, esi
mov dword [rsp + 0x1610], esi
jmp 0x180062a94
test r8d, r8d
js 0x18006486f
xor esi, esi
mov rcx, qword [rdx + 0x80]
test rcx, rcx
jne 0x180062aa5
mov rax, rsi
jmp 0x180062ab3
mov rax, qword [rdx + 0x88]
sub rax, rcx
sar rax, 3
cmp r8d, eax
jge 0x18006486f
mov qword [rsp + 0x58], rsi
mov dword [rsp + 0xbc], 1
mov dword [rsp + 0xb8], esi
mov dword [rsp + 0x98], esi
test r9b, 2
je 0x180063150
xor r8d, r8d
lea edx, [r8 + 6]
mov rcx, rbx
mov rdi, qword [rsp + 0x1600]
call qword [rdi + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov r9, rbx
mov edx, 2
lea r8d, [rdx - 1]
lea rcx, [rsp + 0x60]
call qword [rdi]
mov r9, rbx
mov edx, 2
lea r8d, [rdx - 1]
lea rcx, [rsp + 0x50]
call qword [rdi]
mov rcx, qword [rsp + 0x1620]
cmp qword [rcx + 8], 0
je 0x180062b7e
movzx eax, byte [rcx + 0x14]
cmp eax, dword [rcx + 0x10]
jge 0x180062b7e
lea edx, [rax + rax*2]
add edx, dword [rcx + 8]
xor r8d, r8d
mov rcx, rbx
call qword [rdi + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov r9, rbx
mov edx, 1
mov r8d, edx
lea rcx, [rsp + 0x36]
call qword [rdi]
mov r9, rbx
mov edx, 1
mov r8d, edx
lea rcx, [rsp + 0x35]
call qword [rdi]
mov r9, rbx
mov edx, 1
mov r8d, edx
lea rcx, [rsp + 0x34]
call qword [rdi]
jmp 0x180062b8d
mov byte [rsp + 0x36], 0
mov byte [rsp + 0x35], 0
mov byte [rsp + 0x34], 0
mov byte [rsp + 0x37], 0
movzx edx, word [rsp + 0x50]
movzx ecx, word [rsp + 0x60]
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
xor r9d, r9d
lea r8d, [r9 + 0x20]
call fcn.180051190
mov rcx, rax
mov qword [rsp + 0x58], rax
test rax, rax
jne 0x180062be0
lea rax, str.DIB_allocated_failed
mov qword [rsp + 0xc0], rax
lea rdx, [0x180282a20]
lea rcx, [rsp + 0xc0]
call fcn.18015ebe0
mov ebx, esi
movzx eax, word [rsp + 0x50]
cmp ebx, eax
jge 0x180062c16
mov edx, ebx
call fcn.1800536f0
mov edx, esi
movzx ecx, word [rsp + 0x60]
cmp edx, ecx
jge 0x180062c0c
mov ecx, dword [rsp + 0x34]
mov dword [rax], ecx
add rax, 4
add edx, 1
jmp 0x180062bf4
add ebx, 1
mov rcx, qword [rsp + 0x58]
jmp 0x180062be2
mov rdi, rsi
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x80], rsi
mov r10d, dword [rsp + 0x1610]
mov ecx, r10d
mov dword [rsp + 0x44], ecx
nop
nop
test r10d, r10d
js 0x180062eb0
movsxd rdi, r10d
mov rbx, qword [rsp + 0x1620]
mov rcx, qword [rbx + 0x60]
test rcx, rcx
je 0x180062c6d
mov rax, qword [rbx + 0x68]
sub rax, rcx
sar rax, 3
cmp rdi, rax
jb 0x180062c72
call fcn.1801600e0
mov rax, qword [rbx + 0x60]
mov edx, dword [rax + rdi*8]
add edx, 1
xor r8d, r8d
mov rbx, qword [rsp + 0x1608]
mov rcx, rbx
mov rsi, qword [rsp + 0x1600]
call qword [rsi + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov r9, rbx
mov edx, 1
mov r8d, edx
lea rcx, [rsp + 0x31]
call qword [rsi]
movzx eax, byte [rsp + 0x31]
movzx esi, al
and sil, 1
mov bl, al
shr ebx, 2
and ebx, 7
mov rax, qword [rsp + 0x1620]
mov rcx, qword [rax + 0x80]
test rcx, rcx
je 0x180062ce2
mov rax, qword [rax + 0x88]
sub rax, rcx
sar rax, 3
cmp rdi, rax
jb 0x180062ce7
call fcn.1801600e0
mov rax, qword [rsp + 0x1620]
mov rax, qword [rax + 0x80]
xor r8d, r8d
mov edx, dword [rax + rdi*8]
mov rdi, qword [rsp + 0x1608]
mov rcx, rdi
mov rax, qword [rsp + 0x1600]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov r9, rdi
mov edx, 2
lea r8d, [rdx - 1]
lea rcx, [rsp + 0x4c]
mov rax, qword [rsp + 0x1600]
call qword [rax]
mov r9, rdi
mov edx, 2
lea r8d, [rdx - 1]
lea rcx, [rsp + 0x48]
mov rax, qword [rsp + 0x1600]
call qword [rax]
mov r9, rdi
mov edx, 2
lea r8d, [rdx - 1]
lea rcx, [rsp + 0x40]
mov rax, qword [rsp + 0x1600]
call qword [rax]
mov r9, rdi
mov edx, 2
lea r8d, [rdx - 1]
lea rcx, [rsp + 0x38]
mov rax, qword [rsp + 0x1600]
call qword [rax]
movzx r8d, word [rsp + 0x38]
movzx edx, word [rsp + 0x40]
movzx ecx, word [rsp + 0x48]
movzx eax, word [rsp + 0x4c]
mov dword [rsp + 0xa8], ebx
mov word [rsp + 0xac], ax
mov word [rsp + 0xae], cx
mov word [rsp + 0xb0], dx
mov word [rsp + 0xb2], r8w
lea rdx, [rsp + 0xa8]
lea rcx, [rsp + 0x68]
call fcn.180062360
mov ecx, dword [rsp + 0x44]
mov r10d, dword [rsp + 0x1610]
cmp r10d, ecx
je 0x180062e9a
cmp word [rsp + 0x4c], 0
jne 0x180062e9a
cmp word [rsp + 0x48], 0
jne 0x180062e9a
movzx eax, word [rsp + 0x60]
cmp word [rsp + 0x40], ax
jne 0x180062e9a
movzx eax, word [rsp + 0x50]
cmp word [rsp + 0x38], ax
jne 0x180062e9a
cmp ebx, 2
jne 0x180062e7a
mov rdi, qword [rsp + 0x70]
test rdi, rdi
je 0x180062e5c
mov rcx, qword [rsp + 0x78]
sub rcx, rdi
movabs r8, 0x2aaaaaaaaaaaaaab
mov rax, r8
imul rcx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x180062e68
sub qword [rsp + 0x78], 0xc
mov ecx, dword [rsp + 0x44]
jmp 0x180062e6c
movabs r8, 0x2aaaaaaaaaaaaaab
jmp 0x180062e6c
mov ecx, dword [rsp + 0x44]
add r10d, 1
mov dword [rsp + 0x1610], r10d
jmp 0x180062e93
cmp ebx, 3
je 0x180062e9a
test sil, sil
jne 0x180062e9a
movabs r8, 0x2aaaaaaaaaaaaaab
mov rdi, qword [rsp + 0x70]
test r10d, r10d
jns 0x180062ec5
jmp 0x180062eba
sub r10d, 1
mov dword [rsp + 0x1610], r10d
mov rdi, qword [rsp + 0x70]
jmp 0x180062c40
movabs r8, 0x2aaaaaaaaaaaaaab
xor r10d, r10d
mov dword [rsp + 0x1610], r10d
cmp r10d, ecx
jg 0x18006311b
mov eax, ecx
sub eax, r10d
movsxd rbx, eax
test rdi, rdi
je 0x180062efb
mov rcx, qword [rsp + 0x78]
sub rcx, rdi
mov rax, r8
imul rcx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rbx, rdx
jb 0x180062f0d
call fcn.1801600e0
mov rdi, qword [rsp + 0x70]
mov r10d, dword [rsp + 0x1610]
lea rsi, [rbx + rbx*2]
mov ecx, dword [rsp + 0x44]
cmp r10d, ecx
je 0x180062f85
mov eax, dword [rdi + rsi*4]
cmp eax, 3
je 0x180063100
cmp eax, 2
jne 0x180062f85
xor ebx, ebx
nop
movzx eax, word [rdi + rsi*4 + 0xa]
cmp ebx, eax
jge 0x180062f7d
movzx eax, word [rdi + rsi*4 + 6]
movzx edx, word [rsp + 0x50]
sub edx, eax
sub edx, ebx
sub edx, 1
mov rcx, qword [rsp + 0x58]
call fcn.1800536f0
movzx ecx, word [rdi + rsi*4 + 4]
lea rdx, [rax + rcx*4]
xor ecx, ecx
nop
movzx eax, word [rdi + rsi*4 + 8]
cmp ecx, eax
jge 0x180062f78
mov eax, dword [rsp + 0x34]
mov dword [rdx], eax
add rdx, 4
add ecx, 1
jmp 0x180062f60
add ebx, 1
jmp 0x180062f30
mov r10d, dword [rsp + 0x1610]
mov rax, qword [rsp + 0x1620]
mov qword [rsp + 0x20], rax
mov r9d, 1
mov r8d, r10d
mov rdx, qword [rsp + 0x1608]
mov rcx, qword [rsp + 0x1600]
call fcn.180062a30
mov rbx, rax
mov qword [rsp + 0xa0], rax
test rax, rax
je 0x1800630ef
mov rcx, rax
call fcn.18004d740
mov qword [rsp + 0xa8], rax
mov byte [rsp + 0x32], 0
mov rcx, rbx
call fcn.18004dc70
test eax, eax
je 0x180063020
mov rcx, rbx
call fcn.18007e6e0
mov ebx, eax
mov rcx, qword [rsp + 0xa0]
call fcn.18004d430
xor edx, edx
nop
cmp edx, ebx
jge 0x180063020
movsxd rcx, edx
cmp byte [rcx + rax], 0
jne 0x18006301b
mov byte [rsp + 0x32], 1
mov dword [rsp + 0x98], edx
jmp 0x180063020
add edx, 1
jmp 0x180063000
xor ecx, ecx
mov dword [rsp + 0x3c], ecx
nop
nop
nop
movzx eax, word [rdi + rsi*4 + 0xa]
cmp ecx, eax
jge 0x1800630cf
movzx eax, word [rdi + rsi*4 + 6]
movzx edx, word [rsp + 0x50]
sub edx, eax
sub edx, ecx
sub edx, 1
mov rcx, qword [rsp + 0x58]
call fcn.1800536f0
movzx ecx, word [rdi + rsi*4 + 4]
lea rbx, [rax + rcx*4]
movzx edx, word [rdi + rsi*4 + 0xa]
sub edx, dword [rsp + 0x3c]
sub edx, 1
mov rcx, qword [rsp + 0xa0]
call fcn.1800536f0
mov r11, rax
xor edx, edx
nop
movzx ecx, word [rdi + rsi*4 + 8]
cmp edx, ecx
jge 0x1800630bf
cmp byte [rsp + 0x32], 0
je 0x18006309d
movzx ecx, byte [r11]
cmp ecx, dword [rsp + 0x98]
je 0x1800630b2
movzx eax, byte [r11]
mov rcx, qword [rsp + 0xa8]
mov ecx, dword [rcx + rax*4]
mov dword [rbx], ecx
mov byte [rbx + 3], 0xff
add rbx, 4
add r11, 1
add edx, 1
jmp 0x180063080
mov ecx, dword [rsp + 0x3c]
add ecx, 1
mov dword [rsp + 0x3c], ecx
jmp 0x180063030
mov rcx, qword [rsp + 0xa0]
call fcn.180052160
mov rdi, qword [rsp + 0x70]
mov ecx, dword [rsp + 0x44]
mov r10d, dword [rsp + 0x1610]
jmp 0x180063100
mov rdi, qword [rsp + 0x70]
mov ecx, dword [rsp + 0x44]
mov r10d, dword [rsp + 0x1610]
add r10d, 1
mov dword [rsp + 0x1610], r10d
movabs r8, 0x2aaaaaaaaaaaaaab
jmp 0x180062ec5
test rdi, rdi
je 0x180063128
mov rcx, rdi
call fcn.18015ea10
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 0
mov rax, qword [rsp + 0x58]
jmp 0x180064871
movsxd rbx, r8d
mov rcx, qword [rdx + 0x80]
test rcx, rcx
je 0x180063172
mov rax, qword [rdx + 0x88]
sub rax, rcx
sar rax, 3
cmp rbx, rax
jb 0x18006317f
call fcn.1801600e0
mov rdx, qword [rsp + 0x1620]
mov rax, qword [rdx + 0x80]
xor r8d, r8d
mov edx, dword [rax + rbx*8]
mov rbx, qword [rsp + 0x1608]
mov rcx, rbx
mov rsi, qword [rsp + 0x1600]
call qword [rsi + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov r9, rbx
mov edx, 2
lea r8d, [rdx - 1]
lea rcx, [rsp + 0x4c]
call qword [rsi]
mov r9, rbx
mov edx, 2
lea r8d, [rdx - 1]
lea rcx, [rsp + 0x48]
call qword [rsi]
mov r9, rbx
mov edx, 2
lea r8d, [rdx - 1]
lea rcx, [rsp + 0x40]
call qword [rsi]
mov r9, rbx
mov edx, 2
lea r8d, [rdx - 1]
lea rcx, [rsp + 0x38]
call qword [rsi]
mov r9, rbx
mov edx, 1
mov r8d, edx
lea rcx, [rsp + 0x31]
call qword [rsi]
movzx eax, byte [rsp + 0x31]
movzx ecx, al
shr cl, 6
and cl, 1
mov byte [rsp + 0x32], cl
movzx esi, al
shr sil, 7
not sil
and sil, 1
mov r8d, 8
mov dword [rsp + 0x34], r8d
test dil, 1
jne 0x18006329d
test sil, sil
jne 0x180063268
and eax, 7
mov edx, 2
movzx ecx, al
shl edx, cl
cmp edx, 2
jg 0x180063255
mov r8d, 1
mov dword [rsp + 0x34], r8d
jmp 0x18006329d
cmp edx, 0x10
jg 0x18006329d
mov ebx, 4
mov r8d, ebx
mov dword [rsp + 0x34], ebx
jmp 0x18006329d
mov rax, qword [rsp + 0x1620]
cmp qword [rax + 8], 0
je 0x18006329d
mov eax, dword [rax + 0x10]
cmp eax, 2
jg 0x18006328c
mov r8d, 1
mov dword [rsp + 0x34], r8d
jmp 0x18006329d
mov ebx, 4
cmp eax, 0x10
cmovle r8d, ebx
mov dword [rsp + 0x34], r8d
movzx edx, word [rsp + 0x38]
movzx ecx, word [rsp + 0x40]
xor eax, eax
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], eax
xor r9d, r9d
call fcn.180051190
mov rdi, rax
mov qword [rsp + 0x58], rax
test rax, rax
jne 0x1800632e9
lea rax, str.DIB_allocated_failed
mov qword [rsp + 0xc8], rax
lea rdx, [0x180282a20]
lea rcx, [rsp + 0xc8]
call fcn.18015ebe0
call fcn.18007e430
mov rbx, rax
test rax, rax
je 0x18006338a
lea rdx, str.FrameLeft
mov rcx, rax
call fcn.18007e700
mov dx, 0x1001
mov rcx, rbx
call fcn.18007e800
mov edx, 3
mov rcx, rbx
call fcn.18007e820
mov edx, 1
mov rcx, rbx
call fcn.18007e840
mov edx, 2
mov rcx, rbx
call fcn.18007e860
lea rdx, [rsp + 0x4c]
mov rcx, rbx
call fcn.18007e8a0
call fcn.180081a10
mov r8w, 0x1001
mov edx, SafeArrayUnaccessData
mov rcx, rax
call fcn.180080fd0
mov rdx, rax
mov rcx, rbx
call fcn.18007e780
mov r9, rbx
lea r8, str.FrameLeft
mov rdx, rdi
mov ecx, 9
call fcn.180051690
mov rcx, rbx
call fcn.18007e490
call fcn.18007e430
mov rbx, rax
test rax, rax
je 0x18006342b
lea rdx, str.FrameTop
mov rcx, rax
call fcn.18007e700
mov dx, 0x1002
mov rcx, rbx
call fcn.18007e800
mov edx, 3
mov rcx, rbx
call fcn.18007e820
mov edx, 1
mov rcx, rbx
call fcn.18007e840
mov edx, 2
mov rcx, rbx
call fcn.18007e860
lea rdx, [rsp + 0x48]
mov rcx, rbx
call fcn.18007e8a0
call fcn.180081a10
mov r8w, 0x1002
mov edx, SafeArrayUnaccessData
mov rcx, rax
call fcn.180080fd0
mov rdx, rax
mov rcx, rbx
call fcn.18007e780
mov r9, rbx
lea r8, str.FrameTop
mov rdx, rdi
mov ecx, 9
call fcn.180051690
mov rcx, rbx
call fcn.18007e490
test sil, sil
setne byte [rsp + 0x30]
call fcn.18007e430
mov rbx, rax
test rax, rax
je 0x1800634d4
lea rdx, str.NoLocalPalette
mov rcx, rax
call fcn.18007e700
mov dx, 0x1003
mov rcx, rbx
call fcn.18007e800
mov edx, 1
mov rcx, rbx
call fcn.18007e820
mov edx, 1
mov rcx, rbx
call fcn.18007e840
mov edx, 1
mov rcx, rbx
call fcn.18007e860
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.18007e8a0
call fcn.180081a10
mov r8w, 0x1003
mov edx, SafeArrayUnaccessData
mov rcx, rax
call fcn.180080fd0
mov rdx, rax
mov rcx, rbx
call fcn.18007e780
mov r9, rbx
lea r8, str.NoLocalPalette
mov rdx, rdi
mov ecx, 9
call fcn.180051690
mov rcx, rbx
call fcn.18007e490
cmp byte [rsp + 0x32], 0
setne byte [rsp + 0x30]
call fcn.18007e430
mov rbx, rax
test rax, rax
je 0x18006357f
lea rdx, str.Interlaced
mov rcx, rax
call fcn.18007e700
mov dx, 0x1004
mov rcx, rbx
call fcn.18007e800
mov edx, 1
mov rcx, rbx
call fcn.18007e820
mov edx, 1
mov rcx, rbx
call fcn.18007e840
mov edx, 1
mov rcx, rbx
call fcn.18007e860
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.18007e8a0
call fcn.180081a10
mov r8w, 0x1004
mov edx, SafeArrayUnaccessData
mov rcx, rax
call fcn.180080fd0
mov rdx, rax
mov rcx, rbx
call fcn.18007e780
mov r9, rbx
lea r8, str.Interlaced
mov rdx, rdi
mov ecx, 9
call fcn.180051690
mov rcx, rbx
call fcn.18007e490
mov rcx, rdi
call fcn.18004d740
mov rdi, rax
test sil, sil
jne 0x180063624
mov cl, byte [rsp + 0x31]
and ecx, 7
mov eax, 2
shl eax, cl
mov dword [rsp + 0x98], eax
xor ebx, ebx
nop
nop
cmp ebx, eax
jge 0x18006371b
movsxd rax, ebx
lea rsi, [rdi + rax*4]
lea rcx, [rsi + 2]
mov r9, qword [rsp + 0x1608]
mov edx, 1
mov r8d, edx
mov rax, qword [rsp + 0x1600]
call qword [rax]
lea rcx, [rsi + 1]
mov r9, qword [rsp + 0x1608]
mov edx, 1
mov r8d, edx
mov rax, qword [rsp + 0x1600]
call qword [rax]
mov r9, qword [rsp + 0x1608]
mov edx, 1
mov r8d, edx
mov rcx, rsi
mov rax, qword [rsp + 0x1600]
call qword [rax]
add ebx, 1
mov eax, dword [rsp + 0x98]
jmp 0x1800635b0
mov rax, qword [rsp + 0x1620]
cmp qword [rax + 8], 0
je 0x1800636f9
mov rbx, qword [rsp + 0x1608]
mov rcx, rbx
mov rsi, qword [rsp + 0x1600]
call qword [rsi + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov dword [rsp + 0x98], eax
xor r8d, r8d
mov rax, qword [rsp + 0x1620]
mov edx, dword [rax + 8]
mov rcx, rbx
call qword [rsi + reloc.OLEAUT32.dll_SafeArrayGetDim]
xor ebx, ebx
nop
nop
mov rax, qword [rsp + 0x1620]
cmp ebx, dword [rax + 0x10]
jge 0x1800636e2
movsxd rax, ebx
lea rsi, [rdi + rax*4]
lea rcx, [rsi + 2]
mov r9, qword [rsp + 0x1608]
mov edx, 1
mov r8d, edx
mov rax, qword [rsp + 0x1600]
call qword [rax]
lea rcx, [rsi + 1]
mov r9, qword [rsp + 0x1608]
mov edx, 1
mov r8d, edx
mov rax, qword [rsp + 0x1600]
call qword [rax]
mov r9, qword [rsp + 0x1608]
mov edx, 1
mov r8d, edx
mov rcx, rsi
mov rsi, qword [rsp + 0x1600]
call qword [rsi]
add ebx, 1
jmp 0x180063670
xor r8d, r8d
mov edx, dword [rsp + 0x98]
mov rcx, qword [rsp + 0x1608]
call qword [rsi + reloc.OLEAUT32.dll_SafeArrayGetDim]
jmp 0x18006372d
xor ecx, ecx
nop
nop
cmp ecx, 0x100
jge 0x180063725
movsxd rax, ecx
mov byte [rdi + rax*4 + 2], cl
mov byte [rdi + rax*4 + 1], cl
mov byte [rdi + rax*4], cl
add ecx, 1
jmp 0x180063700
mov rsi, qword [rsp + 0x1600]
jmp 0x18006372d
mov rsi, qword [rsp + 0x1600]
mov r9, qword [rsp + 0x1608]
mov edx, 1
mov r8d, edx
lea rcx, [rsp + 0x30]
call qword [rsi]
mov ecx, 0x28058
call fcn.18015fd40
mov rsi, rax
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rax
test rax, rax
je 0x1800637b3
lea rcx, [rax + 0x38]
lea rbx, [fcn.180001948]
mov qword [rsp + 0x20], rbx
lea r9, [0x18000dfd0]
mov edx, 0x28
mov r8d, 0x1000
call fcn.180163dd0
nop
mov qword [rsi + 0x28040], 0
mov dword [rsi + 0x34], 0
mov ecx, 0x400000
call fcn.18004a530
mov qword [rsi + 0x28038], rax
jmp 0x1800637bd
xor esi, esi
mov qword [rsp + 0xa0], rsi
movzx ecx, byte [rsp + 0x30]
mov byte [rsi], 0
mov dword [rsi + 0x14], 8
mov dword [rsi + 4], ecx
mov eax, 1
shl eax, cl
mov dword [rsi + 8], eax
cmp eax, 0x1000
jle 0x1800637e7
mov dword [rsi + 8], 0x1000
mov eax, dword [rsi + 8]
add eax, 1
mov dword [rsi + 0xc], eax
mov dword [rsi + 0x2c], 0
mov dword [rsi + 0x30], 0
mov dword [rsi + 0x28048], 0
mov rcx, qword [rsi + 0x28038]
test rcx, rcx
je 0x180063824
mov edx, 0xff
mov r8d, 0x400000
call fcn.1801603e0
mov eax, dword [rsi + 0xc]
add eax, 1
mov dword [rsi + 0x10], eax
mov dword [rsi + 0x1c], 0
mov eax, dword [rsi + 4]
add eax, 1
mov dword [rsi + 0x20], eax
mov rcx, rsi
call fcn.180060250
xor eax, eax
mov dword [rsp + 0x44], eax
xor ecx, ecx
mov dword [rsp + 0x3c], ecx
xor edi, edi
mov ebx, 8
mov ecx, dword [rsp + 0x34]
sub ebx, ecx
mov eax, 1
shl eax, cl
sub eax, 1
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x98], edi
movzx edx, word [rsp + 0x38]
sub edx, 1
mov rcx, qword [rsp + 0x58]
call fcn.1800536f0
mov qword [rsp + 0xa8], rax
mov r9, qword [rsp + 0x1608]
mov edx, 1
mov r8d, edx
lea rcx, [rsp + 0x30]
mov rax, qword [rsp + 0x1600]
call qword [rax]
nop
movzx ecx, byte [rsp + 0x30]
test cl, cl
je 0x180063ac5
movzx esi, cl
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rdx + 0x28040]
test rcx, rcx
jne 0x1800638f3
movsxd rcx, esi
call fcn.18004a530
mov rdx, qword [rsp + 0xa0]
mov qword [rdx + 0x28040], rax
mov dword [rdx + 0x2804c], esi
jmp 0x18006391d
cmp esi, dword [rdx + 0x2804c]
jle 0x18006391d
call fcn.18015fde0
mov rcx, rsi
call fcn.18004a530
mov rdx, qword [rsp + 0xa0]
mov qword [rdx + 0x28040], rax
mov dword [rdx + 0x2804c], esi
mov dword [rdx + 0x28048], esi
mov rsi, qword [rsp + 0xa0]
mov dword [rsi + 0x28050], 0
mov eax, 8
sub eax, dword [rsi + 0x14]
mov dword [rsi + 0x28054], eax
movzx edx, byte [rsp + 0x30]
mov r9, qword [rsp + 0x1608]
mov r8d, 1
mov rcx, qword [rsi + 0x28040]
mov rax, qword [rsp + 0x1600]
call qword [rax]
mov dword [rsp + 0x60], 0x1000
nop
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x5e0]
mov rcx, rsi
call fcn.180060860
test al, al
je 0x180063aa1
xor esi, esi
nop
cmp esi, dword [rsp + 0x60]
jge 0x180063a8c
movsxd r9, dword [rsp + 0x3c]
movsxd rax, esi
movzx edx, byte [rsp + rax + 0x5e0]
and dl, byte [rsp + 0x50]
mov ecx, ebx
shl dl, cl
mov r10, qword [rsp + 0xa8]
or byte [r9 + r10], dl
test ebx, ebx
jle 0x1800639cc
mov r8d, dword [rsp + 0x34]
sub ebx, r8d
jmp 0x1800639e2
add r9d, 1
mov dword [rsp + 0x3c], r9d
mov ebx, 8
mov r8d, dword [rsp + 0x34]
sub ebx, r8d
mov ecx, dword [rsp + 0x44]
add ecx, 1
mov dword [rsp + 0x44], ecx
movzx eax, word [rsp + 0x40]
cmp ecx, eax
jl 0x180063a84
cmp byte [rsp + 0x32], 0
je 0x180063a3d
movsxd rdx, dword [rsp + 0x98]
lea r9, [0x180000000]
add edi, dword [r9 + rdx*4 + 0x288d60]
movzx ecx, word [rsp + 0x38]
cmp edi, ecx
jl 0x180063a45
add edx, 1
mov dword [rsp + 0x98], edx
cmp edx, 4
jge 0x180063a45
movsxd rax, edx
mov edi, dword [r9 + rax*4 + 0x288d50]
jmp 0x180063a45
add edi, 1
movzx ecx, word [rsp + 0x38]
movzx edx, cx
cmp edi, edx
jl 0x180063a59
mov rsi, qword [rsp + 0xa0]
mov byte [rsi], 1
jmp 0x180063a94
xor ecx, ecx
mov dword [rsp + 0x3c], ecx
xor eax, eax
mov dword [rsp + 0x44], eax
mov ebx, 8
sub ebx, r8d
sub edx, edi
sub edx, 1
mov rcx, qword [rsp + 0x58]
call fcn.1800536f0
mov qword [rsp + 0xa8], rax
add esi, 1
jmp 0x180063990
mov rsi, qword [rsp + 0xa0]
mov dword [rsp + 0x60], 0x1000
jmp 0x180063970
mov r9, qword [rsp + 0x1608]
mov edx, 1
mov r8d, edx
lea rcx, [rsp + 0x30]
mov rax, qword [rsp + 0x1600]
call qword [rax]
jmp 0x1800638b0
mov eax, dword [rsp + 0x1610]
test eax, eax
jne 0x18006457d
xor r8d, r8d
lea edx, [rax + 6]
mov rdi, qword [rsp + 0x1608]
mov rcx, rdi
mov rsi, qword [rsp + 0x1600]
call qword [rsi + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov r9, rdi
mov edx, 2
lea r8d, [rdx - 1]
lea rcx, [rsp + 0x60]
call qword [rsi]
mov r9, rdi
mov edx, 2
lea r8d, [rdx - 1]
lea rcx, [rsp + 0x50]
call qword [rsi]
call fcn.18007e430
mov rbx, rax
test rax, rax
je 0x180063bb9
lea rdx, str.LogicalWidth
mov rcx, rax
call fcn.18007e700
mov dx, 1
mov rcx, rbx
call fcn.18007e800
mov edx, 3
mov rcx, rbx
call fcn.18007e820
mov edx, 1
mov rcx, rbx
call fcn.18007e840
mov edx, 2
mov rcx, rbx
call fcn.18007e860
lea rdx, [rsp + 0x60]
mov rcx, rbx
call fcn.18007e8a0
call fcn.180081a10
mov r8w, 1
mov edx, SafeArrayUnaccessData
mov rcx, rax
call fcn.180080fd0
mov rdx, rax
mov rcx, rbx
call fcn.18007e780
mov r9, rbx
lea r8, str.LogicalWidth
mov rdx, qword [rsp + 0x58]
mov ecx, 9
call fcn.180051690
mov rcx, rbx
call fcn.18007e490
call fcn.18007e430
mov rbx, rax
test rax, rax
je 0x180063c5c
lea rdx, str.LogicalHeight
mov rcx, rax
call fcn.18007e700
mov dx, 2
mov rcx, rbx
call fcn.18007e800
mov edx, 3
mov rcx, rbx
call fcn.18007e820
mov edx, 1
mov rcx, rbx
call fcn.18007e840
mov edx, 2
mov rcx, rbx
call fcn.18007e860
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.18007e8a0
call fcn.180081a10
mov r8w, 2
mov edx, SafeArrayUnaccessData
mov rcx, rax
call fcn.180080fd0
mov rdx, rax
mov rcx, rbx
call fcn.18007e780
mov r9, rbx
lea r8, str.LogicalHeight
mov rdx, qword [rsp + 0x58]
mov ecx, 9
call fcn.180051690
mov rcx, rbx
call fcn.18007e490
mov rdx, qword [rsp + 0x1620]
cmp qword [rdx + 8], 0
je 0x180063e03
xor r8d, r8d
mov edx, dword [rdx + 8]
mov rcx, rdi
call qword [rsi + reloc.OLEAUT32.dll_SafeArrayGetDim]
xor edi, edi
mov rsi, qword [rsp + 0x1608]
nop
nop
nop
mov rax, qword [rsp + 0x1620]
cmp edi, dword [rax + 0x10]
jge 0x180063d04
movsxd rbx, edi
lea rcx, [rsp + rbx*4 + 0x1e2]
mov r9, rsi
mov edx, 1
mov r8d, edx
mov rax, qword [rsp + 0x1600]
call qword [rax]
lea rcx, [rsp + rbx*4 + 0x1e1]
mov r9, rsi
mov edx, 1
mov r8d, edx
mov rax, qword [rsp + 0x1600]
call qword [rax]
lea rcx, [rsp + rbx*4 + 0x1e0]
mov r9, rsi
mov edx, 1
mov r8d, edx
mov rax, qword [rsp + 0x1600]
call qword [rax]
mov byte [rsp + rbx*4 + 0x1e3], 0
add edi, 1
jmp 0x180063c90
mov edi, dword [rax + 0x10]
lea esi, [rdi*4]
call fcn.18007e430
mov rbx, rax
test rax, rax
je 0x180063db3
lea rdx, str.GlobalPalette
mov rcx, rax
call fcn.18007e700
mov dx, 3
mov rcx, rbx
call fcn.18007e800
mov edx, SafeArrayDestroy
mov rcx, rbx
call fcn.18007e820
mov edx, edi
mov rcx, rbx
call fcn.18007e840
mov edx, esi
mov rcx, rbx
call fcn.18007e860
lea rdx, [rsp + 0x1e0]
mov rcx, rbx
call fcn.18007e8a0
call fcn.180081a10
mov r8w, 3
mov edx, SafeArrayUnaccessData
mov rcx, rax
call fcn.180080fd0
mov rdx, rax
mov rcx, rbx
call fcn.18007e780
mov r9, rbx
lea r8, str.GlobalPalette
mov rdi, qword [rsp + 0x58]
mov rdx, rdi
mov ecx, 9
call fcn.180051690
mov rcx, rbx
call fcn.18007e490
jmp 0x180063db8
mov rdi, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x1620]
movzx eax, byte [rdx + 0x14]
cmp eax, dword [rdx + 0x10]
jge 0x180063df3
lea rdx, [rsp + rax*4 + 0x1e0]
mov rcx, rdi
call fcn.18004d400
mov rdi, qword [rsp + 0x1608]
mov rsi, qword [rsp + 0x1600]
mov rdx, qword [rsp + 0x1620]
jmp 0x180063e03
mov rdi, qword [rsp + 0x1608]
mov rsi, qword [rsp + 0x1600]
mov dword [rsp + 0x3c], 1
xor ebx, ebx
nop
mov rcx, qword [rdx + 0x20]
test rcx, rcx
je 0x180063f86
mov rax, qword [rdx + 0x28]
sub rax, rcx
sar rax, 3
cmp rbx, rax
jae 0x180063f86
test rcx, rcx
je 0x180063e46
mov rax, qword [rdx + 0x28]
sub rax, rcx
sar rax, 3
cmp rbx, rax
jb 0x180063e53
call fcn.1801600e0
mov rdx, qword [rsp + 0x1620]
mov rax, qword [rdx + 0x20]
xor r8d, r8d
mov edx, dword [rax + rbx*8]
mov rcx, rdi
call qword [rsi + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov r9, rdi
mov edx, 1
mov r8d, edx
lea rcx, [rsp + 0x30]
call qword [rsi]
cmp byte [rsp + 0x30], 0xb
jne 0x180063f75
mov r9, rdi
mov edx, SafeArrayDestroy
lea r8d, [rdx - 0xa]
lea rcx, [rsp + 0xa8]
call qword [rsi]
lea rax, [rsp + 0xa8]
lea r8, [0x180000000]
mov rdx, qword [rax]
cmp rdx, qword [r8 + 0x196750]
jne 0x180063ecf
mov dx, word [rax + 8]
cmp dx, word [r8 + 0x196758]
jne 0x180063ecf
mov dl, byte [rax + 0xa]
cmp dl, byte [r8 + 0x19675a]
jne 0x180063ecf
xor eax, eax
jmp 0x180063ed4
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x180063f13
lea rax, [rsp + 0xa8]
mov rdx, qword [rax]
cmp rdx, qword [r8 + 0x196740]
jne 0x180063f0a
mov dx, word [rax + 8]
cmp dx, word [r8 + 0x196748]
jne 0x180063f0a
mov dl, byte [rax + 0xa]
cmp dl, byte [r8 + 0x19674a]
jne 0x180063f0a
xor eax, eax
jmp 0x180063f0f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x180063f75
mov r9, rdi
mov edx, 1
mov r8d, edx
lea rcx, [rsp + 0x30]
call qword [rsi]
cmp byte [rsp + 0x30], 3
jne 0x180063f75
mov r9, rdi
mov edx, 1
mov r8d, edx
lea rcx, [rsp + 0x30]
mov rbx, qword [rsp + 0x1600]
call qword [rbx]
mov r9, rdi
mov edx, 2
lea r8d, [rdx - 1]
lea rcx, [rsp + 0x90]
call qword [rbx]
movzx eax, word [rsp + 0x90]
mov dword [rsp + 0x3c], eax
test eax, eax
jle 0x180063f86
add eax, 1
mov dword [rsp + 0x3c], eax
jmp 0x180063f86
add rbx, 1
mov rdx, qword [rsp + 0x1620]
jmp 0x180063e10
call fcn.18007e430
mov rbx, rax
test rax, rax
je 0x180064029
lea rdx, str.Loop
mov rcx, rax
call fcn.18007e700
mov dx, 4
mov rcx, rbx
call fcn.18007e800
mov edx, 4
mov rcx, rbx
call fcn.18007e820
mov edx, 1
mov rcx, rbx
call fcn.18007e840
mov edx, 4
mov rcx, rbx
call fcn.18007e860
lea rdx, [rsp + 0x3c]
mov rcx, rbx
call fcn.18007e8a0
call fcn.180081a10
mov r8w, 4
mov edx, SafeArrayUnaccessData
mov rcx, rax
call fcn.180080fd0
mov rdx, rax
mov rcx, rbx
call fcn.18007e780
mov r9, rbx
lea r8, str.Loop
mov rdx, qword [rsp + 0x58]
mov ecx, 9
call fcn.180051690
mov rcx, rbx
call fcn.18007e490
xor edi, edi
mov qword [rsp + 0x98], rdi
nop
nop
nop
nop
mov rbx, qword [rsp + 0x1620]
mov rcx, qword [rbx + 0x40]
test rcx, rcx
je 0x18006455d
mov rax, qword [rbx + 0x48]
sub rax, rcx
sar rax, 3
cmp rdi, rax
jae 0x18006456e
test rcx, rcx
je 0x18006407e
mov rax, qword [rbx + 0x48]
sub rax, rcx
sar rax, 3
cmp rdi, rax
jb 0x180064083
call fcn.1801600e0
mov rax, qword [rbx + 0x40]
xor r8d, r8d
mov edx, dword [rax + rdi*8]
mov rbx, qword [rsp + 0x1608]
mov rcx, rbx
mov rdi, qword [rsp + 0x1600]
call qword [rdi + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rsp + 0x88], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rsp + 0x80], 0
mov byte [rsp + 0x70], 0
mov r9, rbx
mov edx, 1
mov r8d, edx
lea rcx, [rsp + 0x30]
call qword [rdi]
movzx eax, byte [rsp + 0x30]
test al, al
je 0x1800643c2
movzx edx, al
mov r9, rbx
mov r8d, 1
lea rcx, [rsp + 0xe0]
call qword [rdi]
movzx ebx, byte [rsp + 0x30]
lea rax, [rsp + 0x70]
mov r8, qword [rsp + 0x70]
mov r10, qword [rsp + 0x88]
cmp r10, 0x10
cmovae rax, r8
lea rcx, [rsp + 0xe0]
cmp rcx, rax
jb 0x180064299
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, r8
mov rcx, qword [rsp + 0x80]
add rax, rcx
lea rdx, [rsp + 0xe0]
cmp rax, rdx
jbe 0x1800642a1
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, r8
lea rsi, [rsp + 0xe0]
sub rsi, rax
cmp rcx, rsi
jae 0x180064185
call fcn.18004a460
mov r10, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x70]
mov rax, rcx
sub rax, rsi
cmp rax, rbx
cmovb rbx, rax
or rax, 0xffffffffffffffff
sub rax, rcx
cmp rax, rbx
jbe 0x1800641a7
lea rax, [rcx + rbx]
cmp rax, rcx
jae 0x1800641c1
call fcn.18004a390
mov r10, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x70]
test rbx, rbx
je 0x180064393
lea rdi, [rcx + rbx]
cmp rdi, 0xfffffffffffffffe
jbe 0x1800641ee
call fcn.18004a390
mov r10, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x70]
cmp r10, rdi
jae 0x18006421a
mov r8, rcx
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.1800016f0
mov r10, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x70]
jmp 0x18006423c
test rdi, rdi
jne 0x18006423c
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, r8
mov byte [rax], dil
jmp 0x180064393
test rdi, rdi
je 0x180064393
lea rdx, [rsp + 0x70]
cmp r10, 0x10
cmovae rdx, r8
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, r8
sub r10, rcx
add rcx, rax
lea r8, [rsi + rdx]
mov r9, rbx
mov rdx, r10
call fcn.18015ed70
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rdi + rax], 0
jmp 0x180064393
mov rcx, qword [rsp + 0x80]
or rax, 0xffffffffffffffff
sub rax, rcx
cmp rax, rbx
jbe 0x1800642b6
lea rax, [rcx + rbx]
cmp rax, rcx
jae 0x1800642d0
call fcn.18004a390
mov r10, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x70]
test rbx, rbx
je 0x180064393
lea rdi, [rcx + rbx]
cmp rdi, 0xfffffffffffffffe
jbe 0x1800642fd
call fcn.18004a390
mov r10, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x70]
cmp r10, rdi
jae 0x180064329
mov r8, rcx
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.1800016f0
mov r10, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x70]
jmp 0x180064348
test rdi, rdi
jne 0x180064348
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, r8
mov byte [rax], dil
jmp 0x180064393
test rdi, rdi
je 0x180064393
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, r8
sub r10, rcx
add rcx, rax
mov r9, rbx
lea r8, [rsp + 0xe0]
mov rdx, r10
call fcn.18015ed70
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rax + rdi], 0
mov rbx, qword [rsp + 0x1608]
mov r9, rbx
mov edx, 1
mov r8d, edx
lea rcx, [rsp + 0x30]
mov rax, qword [rsp + 0x1600]
call qword [rax]
mov rdi, qword [rsp + 0x1600]
jmp 0x1800640d2
or rax, 0xffffffffffffffff
mov rcx, qword [rsp + 0x80]
sub rax, rcx
cmp rax, 1
ja 0x1800643e4
call fcn.18004a390
mov rcx, qword [rsp + 0x80]
lea rbx, [rcx + 1]
cmp rbx, 0xfffffffffffffffe
jbe 0x1800643fb
call fcn.18004a390
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
cmp rdx, rbx
jae 0x18006442a
mov r8, rcx
mov rdx, rbx
lea rcx, [rsp + 0x68]
call fcn.1800016f0
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
jmp 0x18006444a
test rbx, rbx
jne 0x18006444a
mov qword [rsp + 0x80], rbx
lea rax, [rsp + 0x70]
cmp rdx, 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rax], bl
jmp 0x180064482
test rbx, rbx
je 0x180064482
lea rax, [rsp + 0x70]
cmp rdx, 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rcx + rax], 0
mov qword [rsp + 0x80], rbx
lea rax, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rax + rbx], 0
mov r8, qword [rsp + 0x98]
lea rdx, str.Comment_d
lea rcx, [rsp + 0xe0]
call fcn.1801631e0
lea rdi, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae rdi, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x80]
call fcn.18007e430
mov rbx, rax
test rax, rax
je 0x18006452f
lea rdx, [rsp + 0xe0]
mov rcx, rax
call fcn.18007e700
mov dx, 1
mov rcx, rbx
call fcn.18007e800
mov edx, 2
mov rcx, rbx
call fcn.18007e820
mov edx, esi
mov rcx, rbx
call fcn.18007e840
mov edx, esi
mov rcx, rbx
call fcn.18007e860
mov rdx, rdi
mov rcx, rbx
call fcn.18007e8a0
mov r9, rbx
lea r8, [rsp + 0xe0]
mov rdx, qword [rsp + 0x58]
xor ecx, ecx
call fcn.180051690
mov rcx, rbx
call fcn.18007e490
nop
cmp qword [rsp + 0x88], 0x10
jb 0x180064544
mov rcx, qword [rsp + 0x70]
call fcn.18015ea10
mov rdi, qword [rsp + 0x98]
add rdi, 1
mov qword [rsp + 0x98], rdi
jmp 0x180064040
mov rsi, qword [rsp + 0xa0]
mov eax, dword [rsp + 0x1610]
jmp 0x18006457d
mov rsi, qword [rsp + 0xa0]
mov eax, dword [rsp + 0x1610]
movsxd rbx, eax
mov rdi, qword [rsp + 0x1620]
mov rcx, qword [rdi + 0x60]
test rcx, rcx
je 0x1800645a1
mov rax, qword [rdi + 0x68]
sub rax, rcx
sar rax, 3
cmp rbx, rax
jb 0x1800645a6
call fcn.1801600e0
mov rax, qword [rdi + 0x60]
cmp qword [rax + rbx*8], 0
je 0x1800646ad
mov rcx, rax
test rax, rax
je 0x1800645cd
mov rax, qword [rdi + 0x68]
sub rax, rcx
sar rax, 3
cmp rbx, rax
jb 0x1800645d2
call fcn.1801600e0
mov rax, qword [rdi + 0x60]
mov edx, dword [rax + rbx*8]
add edx, 1
xor r8d, r8d
mov rbx, qword [rsp + 0x1608]
mov rcx, rbx
mov rdi, qword [rsp + 0x1600]
call qword [rdi + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov r9, rbx
mov edx, 1
mov r8d, edx
lea rcx, [rsp + 0x31]
call qword [rdi]
mov r9, rbx
mov edx, 2
lea r8d, [rdx - 1]
lea rcx, [rsp + 0x90]
call qword [rdi]
mov r9, rbx
mov edx, 1
mov r8d, edx
lea rcx, [rsp + 0x30]
call qword [rdi]
movzx eax, byte [rsp + 0x31]
movzx r9d, al
shr eax, 2
and eax, 7
mov dword [rsp + 0xbc], eax
movzx eax, word [rsp + 0x90]
lea r8d, [rax + rax*4]
add r8d, r8d
mov dword [rsp + 0xb8], r8d
movzx edi, byte [rsp + 0x30]
and r9b, 1
je 0x1800646b4
mov ecx, dword [rsp + 0x34]
mov ebx, 1
shl ebx, cl
cmp edi, ebx
jg 0x1800646bb
movsxd r8, ebx
mov edx, 0xff
lea rcx, [rsp + 0xe0]
call fcn.1801603e0
mov byte [rsp + rdi + 0xe0], 0
mov r8d, ebx
lea rdx, [rsp + 0xe0]
mov rdi, qword [rsp + 0x58]
mov rcx, rdi
call fcn.18004dd30
jmp 0x1800646c0
mov rdi, qword [rsp + 0x58]
jmp 0x1800646c0
mov rdi, qword [rsp + 0x58]
jmp 0x1800646c0
mov rdi, qword [rsp + 0x58]
call fcn.18007e430
mov rbx, rax
test rax, rax
je 0x180064764
lea rdx, str.FrameTime
mov rcx, rax
call fcn.18007e700
mov dx, 0x1005
mov rcx, rbx
call fcn.18007e800
mov edx, 4
mov rcx, rbx
call fcn.18007e820
mov edx, 1
mov rcx, rbx
call fcn.18007e840
mov edx, 4
mov rcx, rbx
call fcn.18007e860
lea rdx, [rsp + 0xb8]
mov rcx, rbx
call fcn.18007e8a0
call fcn.180081a10
mov r8w, 0x1005
mov edx, SafeArrayUnaccessData
mov rcx, rax
call fcn.180080fd0
mov rdx, rax
mov rcx, rbx
call fcn.18007e780
mov r9, rbx
lea r8, str.FrameTime
mov rdx, rdi
mov ecx, 9
call fcn.180051690
mov rcx, rbx
call fcn.18007e490
mov eax, dword [rsp + 0xbc]
mov byte [rsp + 0x30], al
call fcn.18007e430
mov rbx, rax
test rax, rax
je 0x180064810
lea rdx, str.DisposalMethod
mov rcx, rax
call fcn.18007e700
mov dx, 0x1006
mov rcx, rbx
call fcn.18007e800
mov edx, 1
mov rcx, rbx
call fcn.18007e820
mov edx, 1
mov rcx, rbx
call fcn.18007e840
mov edx, 1
mov rcx, rbx
call fcn.18007e860
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.18007e8a0
call fcn.180081a10
mov r8w, 0x1006
mov edx, SafeArrayUnaccessData
mov rcx, rax
call fcn.180080fd0
mov rdx, rax
mov rcx, rbx
call fcn.18007e780
mov r9, rbx
lea r8, str.DisposalMethod
mov rdx, rdi
mov ecx, 9
call fcn.180051690
mov rcx, rbx
call fcn.18007e490
test rsi, rsi
je 0x180064866
mov rcx, qword [rsi + 0x28040]
test rcx, rcx
je 0x180064826
call fcn.18015fde0
mov rcx, qword [rsi + 0x28038]
test rcx, rcx
je 0x180064842
call fcn.18015fde0
mov qword [rsi + 0x28038], 0
lea rcx, [rsi + 0x38]
lea r9, [fcn.180001948]
mov edx, 0x28
mov r8d, 0x1000
call fcn.18015fe80
mov rcx, rsi
call fcn.18015ea10
nop
mov rax, rdi
jmp 0x180064871
xor eax, eax
add rsp, 0x15e0
pop rdi
pop rsi
pop rbx
ret