Function at 0x180059400
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x17]
sub rsp, 0xe0
mov r14d, dword [rbp + 0x6f]
mov ebx, r9d
mov r15d, dword [rbp + 0x6f]
mov r9, r8
imul eax, ebx, 0x226
mov rdi, rdx
mov r11, rcx
mov r13d, ebx
mov dword [rbp - 0x79], eax
cmp ebx, eax
ja 0x18005986a
movzx eax, byte [rbp + 0x6f]
mov esi, dword [rbp + 0x6f]
mov r12d, dword [rbp + 0x6f]
mov ecx, dword [rbp + 0x6f]
mov byte [rsp + 0x30], al
mov eax, dword [rbp + 0x6f]
mov dword [rsp + 0x40], eax
mov eax, dword [rbp + 0x6f]
mov dword [rsp + 0x48], eax
mov rax, qword [rbp - 0x71]
mov qword [rbp - 0x71], rax
mov r8, qword [rbp - 0x71]
mov eax, dword [rbp + 0x6f]
mov qword [rsp + 0x38], r8
mov dword [rbp - 0x7d], esi
mov dword [rsp + 0x44], r12d
mov dword [rbp - 0x75], ecx
mov dword [rbp - 0x69], eax
nop word [rax + rax]
cmp r13d, 0x3795
ja 0x1800596e8
je 0x1800596b7
mov eax, r13d
sub eax, 0x78
je 0x1800596a7
sub eax, 0x74
je 0x180059602
sub eax, 0x2b
je 0x1800595c7
sub eax, 0x16d1
je 0x1800595b8
cmp eax, 0x1770
jne 0x180059680
mov r9, qword [r8 + 0x18]
lea rcx, [rbp + 7]
mov edx, 1
lea r8d, [rdx + 0xd]
call fcn.18007c8f8
cmp rax, 0xe
je 0x180059518
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x2b
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax]
movzx ecx, byte [rbp + 8]
movzx eax, byte [rbp + 7]
shl ecx, 8
add ecx, eax
cmp ecx, 0x4d42
je 0x180059542
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3ef
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax]
movzx eax, byte [rbp + 0x13]
mov edx, 1
movzx r12d, byte [rbp + 0x14]
mov rcx, qword [rsp + 0x38]
shl r12d, 8
add r12d, eax
lea r8d, [rdx + 3]
movzx eax, byte [rbp + 0x12]
mov r9, qword [rcx + 0x18]
lea rcx, [rbp - 0x59]
shl r12d, 8
add r12d, eax
movzx eax, byte [rbp + 0x11]
shl r12d, 8
add r12d, eax
mov dword [rbp - 0x69], r12d
call fcn.18007c8f8
cmp rax, 4
je 0x18005982c
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x2b
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax]
mov r11, qword [rbp + 0x57]
mov r9, qword [rbp + 0x67]
mov r8, qword [rsp + 0x38]
jmp 0x18005967b
xor edx, edx
mov dword [rsp + 0x40], edx
mov dword [rsp + 0x48], edx
jmp 0x180059680
xor r9d, r9d
mov qword [rsp + 0x20], 0
mov r8d, 0x119
mov rdx, rdi
xor ecx, ecx
call fcn.1800156d0
test al, al
je 0x180059ee8
mov r11, qword [rbp + 0x57]
mov r9, qword [rbp + 0x67]
mov r8, qword [rsp + 0x38]
mov byte [rsp + 0x30], 1
jmp 0x180059680
mov rcx, qword [rdi]
xor r12d, r12d
mov r10, qword [rcx + 0x218]
mov rsi, qword [rcx + 0x58]
mov qword [rbp - 9], r10
cmp dword [rcx + 0x4c], r12d
jle 0x180059678
xor ebx, ebx
nop
mov r8d, dword [rsi + 0xc]
mov rax, qword [r9]
mov rdx, qword [rbp + 0x7f]
imul r8d, dword [rdx]
mov rdx, qword [rbx + rax]
mov rax, qword [r11]
mov rax, qword [rbx + rax]
lea r9, [rdx + r8*8]
mov rdx, qword [rbp + 0x77]
mov edx, dword [rdx]
lea r8, [rax + rdx*8]
mov rdx, rsi
call qword [r10 + rbx + 0x18]
mov rcx, qword [rdi]
lea rbx, [rbx + 8]
mov r10, qword [rbp - 9]
inc r12d
mov r11, qword [rbp + 0x57]
add rsi, 0x60
mov r9, qword [rbp + 0x67]
cmp r12d, dword [rcx + 0x4c]
jl 0x180059620
mov ebx, dword [rbp + 0x6f]
mov r8, qword [rsp + 0x38]
mov esi, dword [rbp - 0x7d]
mov r12d, dword [rsp + 0x44]
imul eax, ebx, 0x32
add r13d, eax
cmp r13d, dword [rbp - 0x79]
jbe 0x1800594a0
mov edx, dword [rsp + 0x44]
mov r10, qword [rbp - 0x71]
movzx r9d, byte [rsp + 0x30]
mov r11d, dword [rbp - 0x75]
jmp 0x1800598ae
mov r8, qword [r11]
xor r14d, r14d
mov qword [rsp + 0x38], r8
xor r15d, r15d
jmp 0x180059680
mov r8, qword [rdi + 0x20]
mov edx, 0x28
mov rcx, qword [rdi + 0x28]
call fcn.180022040
mov qword [0x1800bd628], rax
test rax, rax
je 0x180059ee8
mov r11, qword [rbp + 0x57]
mov r9, qword [rbp + 0x67]
mov r8, qword [rsp + 0x38]
jmp 0x180059680
cmp r13d, 0x46c8
je 0x180059843
cmp r13d, 0x5e38
je 0x1800597ab
cmp r13d, 0x6e13
je 0x180059780
cmp r13d, 0xa491
je 0x18005975c
cmp r13d, 0xdb0f
jne 0x180059680
mov r8, qword [rdi + 0x20]
mov edx, 0x28
mov rcx, qword [rdi + 0x38]
call fcn.180022040
mov rcx, qword [rbp - 0x71]
mov edx, r12d
mov qword [0x1800bd638], rax
call qword [sym.imp.USER32.dll_GetClassLongW]
mov r11, qword [rbp + 0x57]
mov r9, qword [rbp + 0x67]
mov r8, qword [rsp + 0x38]
mov dword [rbp - 0x75], eax
jmp 0x180059680
xor r10d, r10d
cmp qword [0x1800bd630], r10
mov qword [rbp - 0x71], r10
je 0x180059ee8
mov r12d, 0xfffffff2
mov dword [rsp + 0x44], r12d
jmp 0x180059680
mov r8, qword [rdi + 0x20]
mov edx, 0x28
mov rcx, qword [rdi + 0x30]
call fcn.180022040
mov r11, qword [rbp + 0x57]
mov r9, qword [rbp + 0x67]
mov r8, qword [rsp + 0x38]
mov qword [0x1800bd630], rax
jmp 0x180059680
lea eax, [rsi - 0xc]
cmp eax, 0x34
jbe 0x1800597cd
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3eb
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax]
mov r8, qword [rsp + 0x38]
mov r9, qword [r8 + 0x18]
lea eax, [rsi - 4]
movsxd rbx, eax
lea rcx, [rbp - 0x55]
mov r8, rbx
mov edx, 1
call fcn.18007c8f8
cmp rax, rbx
je 0x180059817
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x2b
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax]
mov r11, qword [rbp + 0x57]
mov r9, qword [rbp + 0x67]
mov r8, qword [rsp + 0x38]
mov ebx, dword [rbp + 0x6f]
jmp 0x180059680
mov ebx, dword [rbp + 0x6f]
mov r11, qword [rbp + 0x57]
mov r9, qword [rbp + 0x67]
mov r8, qword [rsp + 0x38]
jmp 0x180059680
mov r12d, dword [rsp + 0x44]
mov r11, qword [rbp + 0x57]
mov r9, qword [rbp + 0x67]
mov r8, qword [rsp + 0x38]
jmp 0x180059680
movzx eax, byte [rbp - 0x57]
movzx esi, byte [rbp - 0x56]
shl esi, 8
add esi, eax
movzx eax, byte [rbp - 0x58]
shl esi, 8
add esi, eax
movzx eax, byte [rbp - 0x59]
shl esi, 8
add esi, eax
mov dword [rbp - 0x7d], esi
jmp 0x180059680
mov eax, dword [rbp + 0x6f]
mov r10, qword [rbp - 0x71]
movzx r9d, byte [rbp + 0x6f]
mov edx, dword [rbp + 0x6f]
mov r11d, dword [rbp + 0x6f]
mov dword [rsp + 0x40], eax
mov eax, dword [rbp + 0x6f]
mov dword [rsp + 0x48], eax
mov eax, dword [rbp + 0x6f]
mov qword [rbp - 0x71], r10
mov r8, qword [rbp - 0x71]
mov dword [rbp - 0x7d], eax
mov eax, dword [rbp + 0x6f]
mov dword [rbp - 0x69], eax
mov byte [rsp + 0x30], r9b
mov dword [rsp + 0x44], edx
mov dword [rbp - 0x75], r11d
mov qword [rsp + 0x38], r8
lea eax, [rbx + 0x46]
cmp ebx, eax
mov dword [rsp + 0x34], eax
movzx ebx, byte [rbp + 0x6f]
jae case.0x18005990e.300
mov r13d, dword [rbp + 0x6f]
mov r12d, dword [rbp + 0x6f]
mov esi, dword [rbp + 0x6f]
mov eax, dword [rbp + 0x6f]
mov ecx, dword [rsp + 0x34]
nop dword [rax]
nop word [rax + rax]
add eax, 0xffffff88
cmp eax, 0xb4
ja case.default.0x18005990e
lea rcx, [0x180000000]
movzx eax, byte [rcx + rax + 0x59f38]
mov ecx, dword [rcx + rax*4 + 0x59f0c]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov eax, dword [rbp - 0x7d]
cmp eax, 0xc
je 0x180059979
cmp eax, 0x28
je 0x180059a6f
cmp eax, 0x40
je 0x180059a6f
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3eb
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax]
mov r8, qword [rsp + 0x38]
mov esi, dword [rbp - 0x69]
sub esi, dword [rbp - 0x7d]
sub esi, 0xe
mov dword [rbp + 0x6f], 0x78
cmp dword [rsp + 0x48], 0
jle 0x180059ec0
mov edx, dword [rsp + 0x40]
test edx, edx
jg 0x180059cc8
mov edx, 0x100
mov dword [rsp + 0x40], edx
jmp 0x180059ce9
mov ecx, 0x11d
nop
mov eax, ecx
sub eax, 0x11d
je 0x180059a31
sub eax, 1
je 0x1800599af
cmp eax, 1
jne 0x180059a61
cmp r13d, eax
je 0x180059944
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3ec
jmp 0x180059937
movzx eax, byte [rbp - 0x4f]
movzx edx, byte [rbp - 0x4e]
shl edx, 8
add edx, eax
mov dword [r8 + 0x50], edx
mov rax, qword [rdi]
mov rcx, qword [rax]
cmp edx, 8
je 0x1800599f4
cmp edx, 0x18
je 0x1800599eb
mov dword [rcx + 0x28], 0x3ea
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax]
mov r8, qword [rsp + 0x38]
mov ecx, 0x11e
jmp 0x180059a61
mov dword [rcx + 0x28], 0x3f2
jmp 0x180059a03
mov dword [rsp + 0x48], 3
mov dword [rcx + 0x28], 0x3f3
mov rax, qword [rdi]
mov edx, 1
mov rcx, qword [rax]
mov dword [rcx + 0x2c], r14d
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x30], r15d
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + OleUIPromptUserA]
mov r8, qword [rsp + 0x38]
mov ecx, 0x11e
jmp 0x180059a61
movzx eax, byte [rbp - 0x55]
movzx r14d, byte [rbp - 0x54]
movzx r15d, byte [rbp - 0x52]
movzx r13d, byte [rbp - 0x50]
shl r14d, 8
add r14d, eax
shl r15d, 8
movzx eax, byte [rbp - 0x53]
add r15d, eax
shl r13d, 8
movzx eax, byte [rbp - 0x51]
add r13d, eax
inc ecx
cmp ecx, 0x120
jb 0x180059980
mov esi, 0x5c
cmp esi, 0x5c
je 0x180059c50
cmp esi, 0xe3
je 0x180059c17
cmp esi, 0x16a
je 0x180059b28
cmp esi, 0x1f1
je 0x180059bee
cmp esi, 0x278
jne 0x180059cac
test r12d, r12d
je 0x180059ac7
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3ee
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax]
mov ecx, dword [rbp - 0x19]
test ecx, ecx
jle 0x18005993f
mov r8d, dword [rbp - 0x15]
test r8d, r8d
jle 0x18005993f
mov eax, 0x51eb851f
imul ecx
mov ecx, 2
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov rax, qword [rdi]
mov dword [rax + 0x15c], edx
mov eax, 0x51eb851f
imul r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov rax, qword [rdi]
mov dword [rax + 0x160], edx
mov rax, qword [rdi]
mov word [rax + 0x158], cx
jmp 0x18005993f
movzx eax, byte [rbp - 0x3f]
movzx ecx, byte [rbp - 0x3e]
mov edx, dword [r8 + 0x50]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x40]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x41]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x3b]
mov dword [rbp - 0x19], ecx
movzx ecx, byte [rbp - 0x3a]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x3c]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x3d]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x37]
mov dword [rbp - 0x15], ecx
movzx ecx, byte [rbp - 0x36]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x38]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x39]
shl ecx, 8
add ecx, eax
mov rax, qword [rdi]
mov dword [rsp + 0x40], ecx
mov rcx, qword [rax]
cmp edx, 8
je 0x180059bbd
cmp edx, 0x18
je 0x180059bb4
mov dword [rcx + 0x28], 0x3ea
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax]
jmp 0x180059bee
mov dword [rcx + 0x28], 0x3f0
jmp 0x180059bcc
mov dword [rsp + 0x48], 4
mov dword [rcx + 0x28], 0x3f1
mov rax, qword [rdi]
mov edx, 1
mov rcx, qword [rax]
mov dword [rcx + 0x2c], r14d
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x30], r15d
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + OleUIPromptUserA]
mov esi, 0x1f1
cmp r13d, 1
je 0x180059cac
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3ec
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax]
jmp 0x180059cac
movzx eax, byte [rbp - 0x4b]
movzx ecx, byte [rbp - 0x4a]
shl ecx, 8
add ecx, eax
mov dword [r8 + 0x50], ecx
movzx eax, byte [rbp - 0x47]
movzx r12d, byte [rbp - 0x46]
shl r12d, 8
add r12d, eax
movzx eax, byte [rbp - 0x48]
shl r12d, 8
add r12d, eax
movzx eax, byte [rbp - 0x49]
shl r12d, 8
add r12d, eax
jmp 0x180059cac
movzx eax, byte [rbp - 0x53]
movzx r14d, byte [rbp - 0x52]
movzx r15d, byte [rbp - 0x4e]
movzx r13d, byte [rbp - 0x4c]
shl r14d, 8
add r14d, eax
shl r15d, 8
movzx eax, byte [rbp - 0x54]
shl r14d, 8
add r14d, eax
shl r13d, 8
movzx eax, byte [rbp - 0x55]
shl r14d, 8
add r14d, eax
movzx eax, byte [rbp - 0x4f]
add r15d, eax
movzx eax, byte [rbp - 0x50]
shl r15d, 8
add r15d, eax
movzx eax, byte [rbp - 0x51]
shl r15d, 8
add r15d, eax
movzx eax, byte [rbp - 0x4d]
add r13d, eax
add esi, 0x87
cmp esi, 0x2ff
jae 0x18005992a
mov r8, qword [rsp + 0x38]
jmp 0x180059a74
cmp edx, 0x100
jle 0x180059ce9
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3e9
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax]
mov edx, dword [rsp + 0x40]
mov rcx, qword [rdi]
mov r9d, 3
mov r8d, edx
mov rax, qword [rcx + 8]
lea edx, [r9 - 2]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x38]
lea r9, [rbp - 1]
mov qword [rbp - 1], rcx
lea r8, [rbp - 0x11]
mov edx, 0x122
mov qword [rcx + 0x38], rax
lea rcx, [rbp - 9]
mov eax, dword [rsp + 0x48]
mov dword [rbp - 9], eax
mov eax, dword [rsp + 0x40]
mov dword [rbp - 0x11], eax
call fcn.180043100
mov eax, dword [rsp + 0x48]
imul eax, dword [rsp + 0x40]
sub esi, eax
jmp 0x180059eb4
mov rax, qword [rdi]
mov dword [rax + 0x38], 3
mov rax, qword [rdi]
mov dword [rax + 0x48], 8
mov rax, qword [rdi]
mov dword [rax + 0x30], r14d
mov rax, qword [rdi]
mov dword [rax + 0x34], r15d
jmp case.0x18005990e.121
test esi, esi
jns case.0x18005990e.121
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x3eb
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax]
jmp 0x180059eb4
cmp qword [0x1800bd638], 0
je 0x180059ee8
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor ecx, ecx
mov qword [0x1800bd640], rax
test r11d, r11d
movzx eax, r9b
cmovne ecx, eax
movzx r9d, cl
mov byte [rsp + 0x30], cl
jmp case.0x18005990e.121
mov rcx, qword [rdi]
xor r8d, r8d
mov r9d, dword [rbp - 0x79]
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], r15d
mov rax, qword [rcx + 8]
lea edx, [r8 + 1]
call qword [rax + 0x20]
mov r8, qword [rsp + 0x38]
movzx r9d, byte [rsp + 0x30]
mov qword [r8 + 0x40], rax
lea rax, [0x18003e910]
mov qword [r8 + 8], rax
mov rax, qword [rdi]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je case.0x18005990e.121
inc dword [rcx + 0x1c]
jmp case.0x18005990e.121
mov bl, 1
jmp case.0x18005990e.121
mov rcx, qword [rdi]
lea r8d, [r14 + r14*2]
mov edx, 1
mov r9d, edx
mov rax, qword [rcx + 8]
call qword [rax + 0x10]
mov r8, qword [rsp + 0x38]
mov ecx, 2
mov qword [r8 + 0x20], rax
mov dword [r8 + 0x28], 1
mov rax, qword [rdi]
mov dword [rax + 0x3c], ecx
jmp 0x180059ec0
sub esi, 1
js 0x180059e7f
nop dword [rax]
nop word [rax + rax]
mov qword [rbp - 1], r8
lea rdx, [rbp - 1]
xor r8d, r8d
mov ecx, 0xcd
call fcn.18004feb0
sub esi, 1
mov r8, qword [rsp + 0x38]
jns 0x180059e60
cmp dword [r8 + 0x50], 0x18
lea eax, [r14 + r14*2]
je 0x180059e8d
mov eax, r14d
mov dword [rbp - 0x79], eax
test al, 3
je 0x180059e9d
inc eax
test al, 3
jne 0x180059e94
mov dword [rbp - 0x79], eax
mov dword [r8 + 0x4c], eax
jmp 0x180059ec0
test r9b, r9b
je case.0x18005990e.121
mov r8d, r11d
mov rcx, r10
call qword [sym.imp.USER32.dll_SetClassLongW]
mov r8, qword [rsp + 0x38]
nop dword [rax]
movzx r9d, byte [rsp + 0x30]
mov ecx, dword [rsp + 0x34]
mov eax, dword [rbp + 0x6f]
add eax, 7
mov dword [rbp + 0x6f], eax
cmp eax, ecx
jae case.0x18005990e.300
mov edx, dword [rsp + 0x44]
mov r10, qword [rbp - 0x71]
mov r11d, dword [rbp - 0x75]
jmp 0x1800598e0
xor al, al
jmp 0x180059eef
movzx eax, bl
mov rbx, qword [rsp + 0x128]
add rsp, 0xe0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret