Function at 0x180036d10
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
lea eax, [r8 + 0xc]
mov r10, r9
mov dword [rsp + 0x6c], eax
mov r13, rcx
cmp r8d, eax
jae case.0x180036d9d.140
mov r15, qword [rsp + 0x50]
mov r12, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x50]
mov r14, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x50]
mov edi, dword [rsp + 0x30]
xor r11d, r11d
lea eax, [r8 - 0x82]
lea r9, [0x180000000]
cmp eax, 0x24
ja case.0x180036d9d.142
movzx eax, byte [r9 + rax + 0x373b8]
mov ecx, dword [r9 + rax*4 + 0x37384]
add rcx, r9
jmp rcx
mov r11d, dword [rsp + 0x3c]
mov r10d, dword [rsp + 0x30]
mov ecx, r11d
mov rax, qword [r13 + 8]
mov edx, r10d
mov r8d, dword [rsp + 0xe0]
mov r9, rax
mov edi, dword [rsp + 0x30]
btr rax, rdx
shr r9, cl
btr rax, r11
and r9d, 1
mov ecx, r10d
shl r9, cl
mov ecx, r11d
or r9, rax
mov rax, qword [r13 + 0x10]
mov qword [rsp + 0x80], r9
mov r9, rax
shr r9, cl
btr rax, rdx
btr rax, r11
and r9d, 1
mov ecx, r10d
shl r9, cl
mov ecx, r11d
or r9, rax
mov rax, qword [r13 + 0x18]
mov r15, rax
mov qword [rsp + 0x88], r9
shr r15, cl
btr rax, rdx
btr rax, r11
and r15d, 1
mov ecx, r10d
shl r15, cl
mov ecx, r11d
or r15, rax
mov rax, qword [r13 + 0x20]
mov r12, rax
btr rax, rdx
mov rdx, qword [rsp + 0xd8]
btr rax, r11
shr r12, cl
mov ecx, r10d
and r12d, 1
shl r12, cl
or r12, rax
mov qword [rsp + 0x70], r12
jmp case.0x180036d9d.142
movzx ecx, byte [rsp + 0x34]
add word [r13 + 0x44], cx
mov byte [r13 + 0x43], cl
jmp case.0x180036d9d.142
mov ecx, dword [rsp + 0x3c]
mov rdx, qword [r13]
mov r8, rdx
mov eax, edi
shr rdx, cl
btr r8, rax
btr r8, rcx
and edx, 1
mov ecx, edi
shl rdx, cl
or r8, rdx
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x78], r8
mov r8d, dword [rsp + 0xe0]
jmp case.0x180036d9d.142
mov edx, dword [rsp + 0x68]
test edx, edx
je 0x180036f2d
mov ecx, 0xe5
nop
mov eax, ecx
sub eax, 0xe5
je 0x180036ee2
sub eax, 1
je 0x180036eda
cmp eax, 1
jne 0x180036f19
mov dword [rsp + 0x38], r11d
jmp 0x180036f19
mov r8d, 0x87
jmp 0x180036f19
mov ecx, edi
mov eax, edx
btr rsi, rcx
sub eax, 1
je 0x180036f10
sub eax, 1
je 0x180036f0a
sub eax, 1
je 0x180036f04
cmp eax, 1
jne 0x180036f14
bts r14, rcx
jmp 0x180036f14
bts rbp, rcx
jmp 0x180036f14
bts r12, rcx
jmp 0x180036f14
bts r15, rcx
mov ecx, 0xe5
inc ecx
cmp ecx, 0xe8
jb 0x180036ec0
mov qword [rsp + 0x70], r12
jmp 0x180037012
mov edx, dword [rsp + 0x3c]
mov rax, qword [r13 + 0x38]
bt rax, rdx
jae 0x1800371c2
mov ecx, dword [rsp + 0x30]
mov eax, edx
shr eax, 3
mov dword [rsp + 0x38], r11d
cmp eax, 1
jne 0x180037044
mov eax, ecx
and eax, 0xfffffff8
cmp eax, 0x18
jne 0x180037140
lea edi, [rdx + 8]
mov ecx, 0x68
mov dword [rsp + 0x48], edi
mov eax, ecx
sub eax, 0x68
je 0x180036fac
sub eax, 0x39
je 0x180036fd7
sub eax, 0x1b
je 0x180036f91
sub eax, 0x4b3c
je 0x180036ff7
cmp eax, 0x3d5c
je 0x180036ff7
jmp 0x180036fb9
cmp edi, 0xff
jbe 0x180036fa5
test edi, edi
js 0x180036fd0
cmp edi, 0xff
jg 0x180036fc9
mov byte [rsp + 0x58], dil
jmp 0x180036fb9
mov rax, qword [r9 + rdi*8 + 0x136cb0]
mov qword [rsp + 0x58], rax
add ecx, 0x4b90
cmp ecx, 0x179d0
jbe 0x180036f70
jmp 0x180036ff7
mov byte [rsp + 0x58], 0xff
jmp 0x180036ff7
mov byte [rsp + 0x58], 0
jmp 0x180036ff7
lea rcx, [rsp + 0x48]
call qword [sym.imp.OPENGL32.dll_wglGetProcAddress]
mov r8d, dword [rsp + 0xe0]
mov r10, qword [rsp + 0xe8]
mov qword [rsp + 0x58], rax
mov rax, qword [r13 + 8]
and rax, qword [r13 + 0x38]
test qword [rsp + 0x58], rax
je 0x18003713c
mov dword [rsp + 0x40], edi
mov edi, dword [rsp + 0x30]
mov rax, qword [rsp + 0x78]
mov rdx, qword [rsp + 0xd8]
mov qword [r13], rax
mov rax, qword [rsp + 0x80]
mov qword [r13 + 8], rax
mov rax, qword [rsp + 0x88]
mov qword [r13 + 0x10], rax
mov qword [r13 + 0x18], r15
jmp case.0x180036d9d.142
cmp eax, 6
jne 0x180037140
mov eax, ecx
and eax, 0xfffffff8
cmp eax, 0x20
jne 0x180037140
lea edi, [rdx - 8]
mov ecx, 0x68
mov dword [rsp + 0x48], edi
mov eax, ecx
sub eax, 0x68
je 0x1800370af
sub eax, 0x39
je 0x18003710a
sub eax, 0x1b
je 0x180037094
sub eax, 0x4b3c
je 0x18003712a
cmp eax, 0x3d5c
je 0x18003712a
jmp 0x1800370bc
cmp edi, 0xff
jbe 0x1800370a8
test edi, edi
js 0x1800370f3
cmp edi, 0xff
jg 0x1800370dc
mov byte [rsp + 0x60], dil
jmp 0x1800370bc
mov rax, qword [r9 + rdi*8 + 0x136ab0]
mov qword [rsp + 0x60], rax
add ecx, 0x4b90
cmp ecx, 0x179d0
jbe 0x180037067
mov rax, qword [r13 + 0x38]
and rax, qword [r13]
test qword [rsp + 0x60], rax
jmp 0x180037004
mov rax, qword [r13 + 0x38]
and rax, qword [r13]
mov byte [rsp + 0x60], 0xff
test qword [rsp + 0x60], rax
jmp 0x180037004
mov rax, qword [r13 + 0x38]
and rax, qword [r13]
mov byte [rsp + 0x60], 0
test qword [rsp + 0x60], rax
jmp 0x180037004
lea rcx, [rsp + 0x48]
call qword [sym.imp.OPENGL32.dll_wglGetProcAddress]
mov r8d, dword [rsp + 0xe0]
mov r10, qword [rsp + 0xe8]
mov qword [rsp + 0x60], rax
mov rax, qword [r13 + 0x38]
and rax, qword [r13]
test qword [rsp + 0x60], rax
jmp 0x180037004
mov ecx, dword [rsp + 0x30]
test dword [r10], 0x80000
je 0x18003700e
mov r12, qword [rsp + 0x78]
mov edx, 1
mov r8, qword [rsp + 0x80]
mov eax, 0xae
rol rdx, cl
cmp eax, 0xae
je 0x180037180
cmp eax, 0x70d4
jne 0x180037197
and r12, rbx
and r8, rbx
and rsi, rbx
jmp 0x180037197
cmp byte [r13 + 0x43], 0
mov rbx, rdx
je 0x180037190
ror rbx, 8
jmp 0x180037194
rol rbx, 8
not rbx
add eax, 0x7026
cmp eax, 0xe04c
jbe 0x180037167
mov qword [rsp + 0x80], r8
mov r8d, dword [rsp + 0xe0]
mov qword [rsp + 0x78], r12
mov r12, qword [rsp + 0x70]
jmp 0x18003700e
mov rcx, qword [r13 + 8]
or rcx, qword [r13]
mov eax, edi
bt rcx, rax
jae 0x1800371dc
mov dword [rsp + 0x38], r11d
jmp 0x180037012
inc dword [rsp + 0x38]
jmp 0x180037012
movsxd r8, dword [rdx]
mov r9, r13
mov edx, 1
mov rcx, r10
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
mov r8d, dword [rsp + 0xe0]
mov rdx, qword [rsp + 0xd8]
mov dword [rsp + 0x50], eax
jmp case.0x180036d9d.142
movzx eax, byte [r13 + 0x41]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x40], r11d
jmp case.0x180036d9d.142
mov r10d, dword [rsp + 0x3c]
mov r9d, dword [rsp + 0x30]
mov ecx, r10d
mov rax, qword [r13 + 0x28]
mov edx, r9d
mov r8d, dword [rsp + 0xe0]
mov rbp, rax
mov edi, dword [rsp + 0x30]
btr rax, rdx
shr rbp, cl
btr rax, r10
and ebp, 1
mov ecx, r9d
shl rbp, cl
mov ecx, r10d
or rbp, rax
mov rax, qword [r13 + 0x30]
mov r14, rax
btr rax, rdx
shr r14, cl
btr rax, r10
and r14d, 1
mov ecx, r9d
shl r14, cl
mov ecx, r10d
or r14, rax
mov rax, qword [r13 + 0x38]
mov rsi, rax
btr rax, rdx
mov rdx, qword [rsp + 0xd8]
btr rax, r10
shr rsi, cl
mov ecx, r9d
and esi, 1
shl rsi, cl
or rsi, rax
jmp case.0x180036d9d.142
mov eax, dword [r10]
mov r10d, eax
mov r9d, eax
shr r10d, 0xa
shr r9d, 4
and r10d, 0x3f
and r9d, 0x3f
shr eax, 0x10
and eax, 7
mov dword [rsp + 0x3c], r10d
cmp byte [r13 + 0x43], 0
mov edi, r9d
mov dword [rsp + 0x30], r9d
sete byte [rsp + 0x34]
mov dword [rsp + 0x68], eax
jmp case.0x180036d9d.142
mov eax, dword [rsp + 0x40]
mov byte [r13 + 0x42], al
mov eax, dword [rsp + 0x38]
mov byte [r13 + 0x41], al
mov qword [r13 + 0x38], rsi
jmp case.0x180036d9d.142
mov qword [r13 + 0x20], r12
mov qword [r13 + 0x28], rbp
mov qword [r13 + 0x30], r14
inc r8d
mov dword [rsp + 0xe0], r8d
cmp r8d, dword [rsp + 0x6c]
jae case.0x180036d9d.140
mov r10, qword [rsp + 0xe8]
jmp 0x180036d6f
mov eax, dword [r10]
lea r9, [rsp + 0x88]
mov dword [rsp + 0xe0], eax
lea rcx, [rsp + 0xe0]
mov rax, qword [r13]
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x20], 0xcb
call fcn.180056d10
jmp 0x180037368
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0xd0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret