Function at 0x180130850
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x40
mov rdi, qword [0x1804e5b30]
movaps xmmword [rsp + 0x30], xmm6
mov qword [rsp + 0x58], r14
movaps xmmword [rsp + 0x20], xmm7
test rdi, rdi
jne 0x18013089a
mov r8d, 0xddd
lea rdx, str.D:FolderscodingCAsteroid_PCAsteroidPCimguiimgui.cpp
lea rcx, str.GImGui___0___No_current_context._Did_you_call_ImGui::CreateContext___and_ImGui::SetCurrentContext_____
call fcn.1803a3598
mov rdi, qword [0x1804e5b30]
mov qword [rsp + 0x50], rbp
call fcn.1801305d0
cmp byte [rdi + 0x2ef4], 0
mov r14d, 2
jne 0x1801309d0
cmp dword [rdi + 0x2f20], 0
je 0x1801308d9
mov r8d, 0xdea
lea rdx, str.D:FolderscodingCAsteroid_PCAsteroidPCimguiimgui.cpp
lea rcx, str.g.SettingsWindows.empty__
call fcn.1803a3598
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x1801309c9
lea rdx, [0x18048c088]
call fcn.18012bb90
mov rbx, rax
test rax, rax
je 0x1801309c9
mov rcx, rax
call fcn.1803958a4
mov ebp, eax
cmp eax, 0xffffffff
je 0x1801309c1
mov r8d, r14d
xor edx, edx
mov rcx, rbx
call fcn.180396688
test eax, eax
jne 0x1801309c1
mov rcx, rbx
call fcn.1803958a4
movsxd rsi, eax
cmp esi, 0xffffffff
je 0x1801309c1
xor r8d, r8d
mov edx, ebp
mov rcx, rbx
call fcn.180396688
test eax, eax
jne 0x1801309c1
cmp rsi, 0xffffffffffffffff
je 0x1801309c1
mov rax, qword [0x1804e5b30]
test rax, rax
je 0x180130963
inc dword [rax + 0x3bc]
mov rcx, rsi
call fcn.1803a3650
mov rbp, rax
test rax, rax
je 0x1801309c1
mov r9, rbx
mov r8, rsi
mov edx, 1
mov rcx, rax
call fcn.18039d7cc
mov rcx, rbx
cmp rax, rsi
je 0x180130995
call fcn.1803962d4
jmp 0x1801309a5
call fcn.1803962d4
mov rdx, rsi
mov rcx, rbp
call fcn.18013fef0
mov rax, qword [0x1804e5b30]
test rax, rax
je 0x1801309b7
dec dword [rax + 0x3bc]
mov rcx, rbp
call fcn.18039d558
jmp 0x1801309c9
mov rcx, rbx
call fcn.1803962d4
mov byte [rdi + 0x2ef4], 1
movss xmm0, dword [rdi + 0x2ef8]
xorps xmm6, xmm6
xor esi, esi
comiss xmm0, xmm6
jbe 0x180130a11
subss xmm0, dword [rdi + 0x18]
comiss xmm6, xmm0
movss dword [rdi + 0x2ef8], xmm0
jb 0x180130a11
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x180130a04
call fcn.180140210
jmp 0x180130a0b
mov byte [rdi + 0x3a4], 1
mov dword [rdi + 0x2ef8], esi
inc dword [rdi + 0x19b0]
movss xmm0, dword [rdi + 0x18]
mov rax, qword [rdi + 0xa8]
mov rbx, qword [0x1804e5b30]
mov byte [rdi + 0x19bc], 1
mov dword [rdi + 0x2ec8], esi
mov dword [rdi + 0x1a10], esi
cvtps2pd xmm0, xmm0
addsd xmm0, qword [rdi + 0x19a8]
movsd qword [rdi + 0x19a8], xmm0
mov byte [rax], 1
mov rcx, qword [rbx + 0xb8]
test rcx, rcx
jne 0x180130a8b
mov rbx, qword [rbx + 0xa8]
cmp dword [rbx + 0x40], esi
jg 0x180130a84
mov r8d, 0x4fa
lea rdx, str.D:FolderscodingCAsteroid_PCAsteroidPCimguiimgui.h
lea rcx, str.i___Size
call fcn.1803a3598
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax]
call fcn.180138920
mov rax, qword [rdi + 0x1908]
cmp qword [rax + 0x48], rsi
jne 0x180130ab6
mov r8d, 0xe07
lea rdx, str.D:FolderscodingCAsteroid_PCAsteroidPCimguiimgui.cpp
lea rcx, str.g.Font__IsLoaded__
call fcn.1803a3598
movss xmm0, dword [rdi + 0x10]
movss xmm1, dword [rdi + 0x14]
mov qword [rdi + 0x1930], rsi
movss dword [rdi + 0x1938], xmm0
movss dword [rdi + 0x193c], xmm1
mov eax, dword [rdi + 0x1604]
mov dword [rdi + 0x192c], eax
mov eax, esi
mov dword [rdi + 0x1940], esi
cmp byte [rdi + 0x1600], sil
je 0x180130b03
mov dword [rdi + 0x1940], 1
mov eax, 1
cmp byte [rdi + 0x1601], sil
je 0x180130b15
or eax, r14d
mov dword [rdi + 0x1940], eax
test byte [rdi + 0xc], 8
je 0x180130b24
or eax, 4
mov dword [rdi + 0x1940], eax
lea rcx, [rdi + 0x1d40]
call fcn.18014b310
mov rdx, qword [rdi + 0xa8]
lea rcx, [rdi + 0x1d40]
mov rdx, qword [rdx + 8]
call fcn.18014b9d0
mov rax, qword [rdi + 0x1d78]
lea rcx, [rdi + 0x1d40]
xor r9d, r9d
movss xmm1, dword [rax + 0x24]
movss xmm0, dword [rax + 0x20]
movss xmm2, dword [rax + 0x1c]
unpcklps xmm0, xmm1
movss xmm1, dword [rax + 0x18]
movq r8, xmm0
unpcklps xmm1, xmm2
movq rdx, xmm1
call fcn.18014b8a0
lea rcx, [rdi + 0x1de8]
call fcn.18014b310
mov rdx, qword [rdi + 0xa8]
lea rcx, [rdi + 0x1de8]
mov rdx, qword [rdx + 8]
call fcn.18014b9d0
mov rax, qword [rdi + 0x1e20]
lea rcx, [rdi + 0x1de8]
xor r9d, r9d
movss xmm1, dword [rax + 0x24]
movss xmm0, dword [rax + 0x20]
movss xmm2, dword [rax + 0x1c]
unpcklps xmm0, xmm1
movss xmm1, dword [rax + 0x18]
movq r8, xmm0
unpcklps xmm1, xmm2
movq rdx, xmm1
call fcn.18014b8a0
mov rdx, qword [0x1804e5b30]
mov byte [rdi + 0x1ce0], sil
mov qword [rdi + 0x1ce8], rsi
mov qword [rdi + 0x1cf4], rsi
mov dword [rdi + 0x1cf0], esi
mov qword [rdi + 0x1d0c], rsi
mov qword [rdi + 0x1d04], rsi
mov qword [rdi + 0x1cfc], rsi
cmp byte [rdi + 0x1e94], sil
je 0x180130c49
mov eax, dword [rdi + 0x1eb4]
cmp eax, dword [rdi + 0x1a60]
jne 0x180130c49
cmp dword [rdx + 0x1a60], eax
jne 0x180130c3a
mov dword [rdx + 0x1a64], eax
cmp dword [rdx + 0x1a9c], eax
jne 0x180130c49
mov byte [rdx + 0x1aa0], 1
cmp dword [rdi + 0x1a54], esi
jne 0x180130c59
mov dword [rdi + 0x1a58], esi
jmp 0x180130c6b
mov eax, dword [rdi + 0x1a4c]
test eax, eax
je 0x180130c71
cmp dword [rdi + 0x1a60], eax
jne 0x180130c71
mov dword [rdi + 0x1a5c], esi
mov eax, dword [rdi + 0x1a4c]
test eax, eax
je 0x180130cab
movss xmm1, dword [rdi + 0x18]
movaps xmm0, xmm1
addss xmm0, dword [rdi + 0x1a58]
movss dword [rdi + 0x1a58], xmm0
cmp dword [rdi + 0x1a60], eax
je 0x180130cab
addss xmm1, dword [rdi + 0x1a5c]
movss dword [rdi + 0x1a5c], xmm1
mov dword [rdi + 0x1a54], eax
mov eax, dword [rdi + 0x1a60]
mov dword [rdi + 0x1a4c], esi
mov byte [rdi + 0x1a50], sil
cmp dword [rdi + 0x1a64], eax
je 0x180130d23
cmp dword [rdi + 0x1a9c], eax
jne 0x180130d23
test eax, eax
je 0x180130d23
mov ecx, dword [rdx + 0x1a60]
test ecx, ecx
setne al
mov byte [rdx + 0x1a6c], al
test ecx, ecx
je 0x180130cfa
mov dword [rdx + 0x1a68], esi
mov word [rdx + 0x1a6e], si
mov dword [rdx + 0x1a60], esi
mov byte [rdx + 0x1a6d], sil
mov qword [rdx + 0x1a90], rsi
mov byte [rdx + 0x1a70], sil
mov qword [rdx + 0x1a74], rsi
mov qword [rdx + 0x1a80], rsi
mov ecx, dword [rdi + 0x1a60]
test ecx, ecx
je 0x180130d42
movss xmm0, dword [rdi + 0x18]
addss xmm0, dword [rdi + 0x1a68]
movss dword [rdi + 0x1a68], xmm0
mov rax, qword [rdi + 0x1a90]
movss xmm0, dword [rdi + 0x18]
addss xmm0, dword [rdi + 0x1ab4]
mov qword [rdi + 0x1aa8], rax
movzx eax, byte [rdi + 0x1a6f]
mov byte [rdi + 0x1aa1], al
mov eax, dword [rdi + 0x2e90]
movss dword [rdi + 0x1ab4], xmm0
mov dword [rdi + 0x1a9c], ecx
mov dword [rdi + 0x1a64], esi
mov byte [rdi + 0x1a70], sil
mov byte [rdi + 0x1aa0], sil
mov byte [rdi + 0x1a6c], sil
test eax, eax
je 0x180130da7
cmp ecx, eax
je 0x180130da7
mov dword [rdi + 0x2e90], esi
test ecx, ecx
jne 0x180130db9
mov qword [rdi + 0x1a74], rsi
mov qword [rdi + 0x1a80], rsi
mov eax, dword [rdi + 0x1f04]
lea rcx, [rdi + 0xca0]
lea rdx, [rdi + 0x4a0]
mov dword [rdi + 0x1f08], eax
mov r8d, 0x800
mov qword [rdi + 0x1f00], 0x7f7fffff
mov byte [rdi + 0x1e95], sil
call fcn.1803c8a30
movss xmm1, dword [0x1804aac1c]
lea rcx, [rdi + 0x14d]
lea rax, [rdi + 0x4a4]
mov r8d, 0x80
nop dword [rax]
cmp byte [rcx - 1], sil
je 0x180130e2c
movss xmm0, dword [rax - 4]
comiss xmm6, xmm0
jbe 0x180130e25
movaps xmm0, xmm6
jmp 0x180130e2f
addss xmm0, dword [rdi + 0x18]
jmp 0x180130e2f
movaps xmm0, xmm1
movss dword [rax - 4], xmm0
cmp byte [rcx], sil
je 0x180130e4e
movss xmm0, dword [rax]
comiss xmm6, xmm0
jbe 0x180130e47
movaps xmm0, xmm6
jmp 0x180130e51
addss xmm0, dword [rdi + 0x18]
jmp 0x180130e51
movaps xmm0, xmm1
movss dword [rax], xmm0
cmp byte [rcx + 1], sil
je 0x180130e71
movss xmm0, dword [rax + 4]
comiss xmm6, xmm0
jbe 0x180130e6a
movaps xmm0, xmm6
jmp 0x180130e74
addss xmm0, dword [rdi + 0x18]
jmp 0x180130e74
movaps xmm0, xmm1
movss dword [rax + 4], xmm0
cmp byte [rcx + 2], sil
je 0x180130e95
movss xmm0, dword [rax + 8]
comiss xmm6, xmm0
jbe 0x180130e8e
movaps xmm0, xmm6
jmp 0x180130e98
addss xmm0, dword [rdi + 0x18]
jmp 0x180130e98
movaps xmm0, xmm1
movss dword [rax + 8], xmm0
add rcx, 4
add rax, 0x10
sub r8, 1
jne 0x180130e10
call fcn.18013c920
call fcn.18012f6f0
movsxd rax, dword [rdi + 0x314c]
movss xmm1, dword [rdi + 0x18]
movss xmm7, dword [0x1804aabe8]
movaps xmm0, xmm1
subss xmm0, dword [rdi + rax*4 + 0x2f6c]
addss xmm0, dword [rdi + 0x3150]
movss dword [rdi + 0x3150], xmm0
movss dword [rdi + rax*4 + 0x2f6c], xmm1
mov eax, 0x88888889
mov ecx, dword [rdi + 0x314c]
movss xmm1, dword [rdi + 0x3150]
inc ecx
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x78
sub ecx, eax
comiss xmm1, xmm6
mov dword [rdi + 0x314c], ecx
jbe 0x180130f3b
divss xmm1, dword [0x1804aab74]
movss xmm0, dword [0x1804aaa2c]
divss xmm0, xmm1
jmp 0x180130f3e
movaps xmm0, xmm7
movss dword [rdi + 0x3a8], xmm0
call fcn.180130100
call fcn.18012f1f0
mov r8, qword [0x1804e5b30]
mov eax, dword [r8 + 0x1b60]
sub eax, 1
js 0x180130f9b
mov r8, qword [r8 + 0x1b68]
movsxd rdx, eax
add r8, 8
lea rcx, [rdx + rdx*2]
shl rcx, 4
add r8, rcx
nop dword [rax]
mov rax, qword [r8]
test rax, rax
je 0x180130f91
test dword [rax + 0xc], 0x8000000
jne 0x180130fb1
sub r8, 0x30
sub rdx, 1
jns 0x180130f80
cmp qword [rdi + 0x1bc8], rsi
je 0x180130fd0
movss xmm0, dword [rdi + 0x1be4]
comiss xmm0, xmm6
jbe 0x180130fd0
movss xmm1, dword [rdi + 0x18]
mulss xmm1, dword [0x1804aab04]
addss xmm1, dword [rdi + 0x1d38]
minss xmm1, dword [0x1804aaa2c]
jmp 0x180130fed
movss xmm0, dword [rdi + 0x18]
mulss xmm0, dword [0x1804aab14]
movss xmm1, dword [rdi + 0x1d38]
subss xmm1, xmm0
maxss xmm1, xmm6
movss dword [rdi + 0x1d38], xmm1
mov dword [rdi + 0x1e90], esi
mov qword [rdi + 0x3158], 0xffffffffffffffff
mov dword [rdi + 0x3154], 0xffffffff
mov dword [rdi + 0x2ee4], 0x3f800000
mov dword [rdi + 0x2ee8], 0x3f800000
call fcn.18012fbc0
mov r10, qword [rdi + 0x1b80]
test r10, r10
je 0x180131069
cmp byte [r10 + 0x7e], sil
je 0x180131069
test dword [r10 + 0xc], 0x40000
jne 0x180131069
cmp byte [rdi + 0x148], sil
jne 0x180131069
mov rax, qword [0x1804e5b30]
mov ecx, dword [rax + 0x3c]
test ecx, ecx
js 0x180131069
call fcn.1801324e0
test al, al
je 0x180131069
mov al, 1
jmp 0x18013106b
xor al, al
mov byte [rdi + 0x1cd8], al
cmp dword [rdi + 0x1a60], esi
jne 0x1801310d2
test al, al
je 0x1801310d2
mov rax, qword [rdi + 0x1b80]
mov qword [rdi + 0x1cc0], rax
mov dword [rdi + 0x1cd0], 0x7fffffff
cmp dword [rdi + 0x1b88], esi
je 0x1801310c1
mov eax, dword [rdi + 0x1bf0]
cmp eax, 0x7fffffff
je 0x1801310c1
cmp byte [rdi + 0x149], sil
cmovne r14d, esi
add r14d, eax
mov dword [rdi + 0x1cd4], r14d
jmp 0x1801310d2
movzx eax, byte [rdi + 0x149]
neg al
sbb ecx, ecx
mov dword [rdi + 0x1cd4], ecx
mov r8, qword [rdi + 0x1cc0]
mov qword [rdi + 0x1cb8], rsi
mov dword [rdi + 0x1ccc], 0x7fffffff
mov dword [rdi + 0x1cc8], 0x7fffffff
test r8, r8
je 0x180131167
mov eax, dword [rdi + 0x1cd0]
mov qword [rdi + 0x1cb8], r8
cmp eax, 0x7fffffff
je 0x180131126
mov ecx, dword [r8 + 0x178]
cmp ecx, 0xffffffff
je 0x180131126
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [rdi + 0x1cc8], edx
mov eax, dword [rdi + 0x1cd4]
cmp eax, 0x7fffffff
je 0x18013114c
mov ecx, dword [r8 + 0x17c]
cmp ecx, 0xffffffff
je 0x18013114c
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [rdi + 0x1ccc], edx
mov qword [rdi + 0x1cc0], rsi
mov dword [rdi + 0x1cd4], 0x7fffffff
mov dword [rdi + 0x1cd0], 0x7fffffff
mov eax, dword [rdi + 0x19c0]
mov dword [rdi + 0x1bf0], 0x7fffffff
cmp dword [rdi + 0x19d0], eax
je 0x18013119e
mov r8d, 0xe8c
lea rdx, str.D:FolderscodingCAsteroid_PCAsteroidPCimguiimgui.cpp
lea rcx, str.g.WindowsFocusOrder.Size__g.Windows.Size
call fcn.1803a3598
mov eax, dword [rdi + 0x19c0]
movss xmm0, dword [rdi + 0xd0]
comiss xmm0, xmm6
jb 0x1801311bb
movsd xmm7, qword [rdi + 0x19a8]
cvtpd2ps xmm7, xmm7
subss xmm7, xmm0
mov ebx, esi
test eax, eax
je 0x180131230
mov r14, rsi
cmp ebx, eax
jl 0x1801311e1
mov r8d, 0x4fa
lea rdx, str.D:FolderscodingCAsteroid_PCAsteroidPCimguiimgui.h
lea rcx, str.i___Size
call fcn.1803a3598
mov rax, qword [rdi + 0x19c8]
mov rcx, qword [r14 + rax]
movzx eax, byte [rcx + 0x7e]
mov byte [rcx + 0x7f], al
mov word [rcx + 0x88], si
mov byte [rcx + 0x7e], sil
mov byte [rcx + 0x80], sil
test al, al
jne 0x180131220
cmp byte [rcx + 0x3a8], sil
jne 0x180131220
comiss xmm7, dword [rcx + 0x254]
jbe 0x180131220
call fcn.18012e710
mov eax, dword [rdi + 0x19c0]
inc ebx
add r14, 8
cmp ebx, eax
jne 0x1801311c6
mov rax, qword [rdi + 0x1b80]
movaps xmm7, xmmword [rsp + 0x20]
test rax, rax
je 0x1801312ca
cmp byte [rax + 0x7f], sil
jne 0x1801312ca
mov r14, qword [0x1804e5b30]
mov ebx, dword [r14 + 0x19d0]
sub ebx, 1
movsxd rbp, ebx
js 0x1801312c3
cmp ebx, dword [r14 + 0x19d0]
jl 0x180131283
mov r8d, 0x4fa
lea rdx, str.D:FolderscodingCAsteroid_PCAsteroidPCimguiimgui.h
lea rcx, str.i___Size
call fcn.1803a3598
mov rax, qword [r14 + 0x19d8]
mov r8, qword [rax + rbp*8]
test r8, r8
je 0x1801312bb
cmp byte [r8 + 0x7f], sil
je 0x1801312bb
mov eax, dword [r8 + 0xc]
and eax, 0x40200
cmp eax, 0x40200
setne cl
bt dword [r8 + 0xc], 0x18
setae al
test al, cl
jne 0x18013148a
dec ebx
sub rbp, 1
jns 0x180131261
xor ecx, ecx
call fcn.180138240
mov ecx, dword [rdi + 0x19f4]
mov r14, qword [rsp + 0x58]
test ecx, ecx
jns 0x1801312f5
mov eax, ecx
cdq
sub eax, edx
mov edx, esi
sar eax, 1
add eax, ecx
lea rcx, [rdi + 0x19f0]
test eax, eax
cmovg edx, eax
call fcn.180141280
mov dword [rdi + 0x19f0], esi
mov ecx, dword [rdi + 0x1b74]
test ecx, ecx
jns 0x180131321
mov eax, ecx
cdq
sub eax, edx
mov edx, esi
sar eax, 1
add eax, ecx
lea rcx, [rdi + 0x1b70]
test eax, eax
cmovg edx, eax
call fcn.1801416f0
mov dword [rdi + 0x1b70], esi
xor edx, edx
mov rcx, qword [rdi + 0x1b80]
call fcn.18013abc0
mov rbx, qword [0x1804e5b30]
mov dword [rbx + 0x2f68], esi
cmp byte [rbx + 0x2f64], sil
je 0x18013142a
mov ebp, dword [rbx + 0x1a54]
mov dword [rbx + 0x1e90], 7
mov ecx, dword [rbx + 0x74]
test ecx, ecx
js 0x180131376
call fcn.1801324e0
test al, al
je 0x180131376
mov byte [rbx + 0x2f64], sil
mov rax, qword [0x1804e5b30]
movss xmm0, dword [rax + 0x43c]
ucomiss xmm0, xmm6
jp 0x18013139d
jne 0x18013139d
test ebp, ebp
je 0x18013139d
mov dword [rbx + 0x2f68], ebp
mov byte [rbx + 0x2f64], sil
or dword [rax + 0x1ab8], 0x40
mov dword [rax + 0x1b10], 0x3f19999a
call fcn.18013a690
mov edx, ebp
lea rcx, str.HoveredId:_0x_08X
call fcn.1801566b0
lea rcx, str.Press_ESC_to_abort_picking.
call fcn.1801566b0
mov rcx, qword [0x1804e5b30]
lea rdx, str.Click_to_break_in_debugger_
mov eax, reloc.WS2_32.dll_recv
test ebp, ebp
cmove rsi, rax
add rcx, 0x1608
add rcx, rsi
call fcn.1801567b0
mov rax, qword [0x1804e5b30]
mov rcx, qword [rax + 0x1a18]
test dword [rcx + 0xc], 0x2000000
jne 0x180131425
mov r8d, 0x1cee
lea rdx, str.D:FolderscodingCAsteroid_PCAsteroidPCimguiimgui.cpp
lea rcx, str.GetCurrentWindowRead____Flags__ImGuiWindowFlags_Tooltip
call fcn.1803a3598
call fcn.180138070
mov rax, qword [0x1804e5b30]
lea rcx, str.DebugDefault
movss xmm1, dword [0x1804aab9c]
xor r8d, r8d
movaps xmm0, xmm1
xor edx, edx
unpcklps xmm0, xmm1
or dword [rax + 0x1ab8], 2
movsd qword [rax + 0x1ad8], xmm0
mov dword [rax + 0x1ac0], 4
call fcn.180135ce0
mov rbp, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
movaps xmm6, xmmword [rsp + 0x30]
mov byte [rdi + 0x19bd], 1
add rsp, 0x40
pop rdi
ret
mov rax, qword [r8 + 0x378]
test rax, rax
cmovne r8, rax
mov rcx, r8
jmp 0x1801312c5