Function at 0x180130620
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 0x18013066a
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.1803a3ad8
mov rdi, qword [0x1804e5b30]
mov qword [rsp + 0x50], rbp
call fcn.1801303a0
cmp byte [rdi + 0x2ef4], 0
mov r14d, 2
jne 0x1801307a0
cmp dword [rdi + 0x2f20], 0
je 0x1801306a9
mov r8d, 0xdea
lea rdx, str.D:FolderscodingCAsteroid_PCAsteroidPCimguiimgui.cpp
lea rcx, str.g.SettingsWindows.empty__
call fcn.1803a3ad8
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x180130799
lea rdx, [0x18048bf78]
call fcn.18012bac0
mov rbx, rax
test rax, rax
je 0x180130799
mov rcx, rax
call fcn.180395de4
mov ebp, eax
cmp eax, 0xffffffff
je 0x180130791
mov r8d, r14d
xor edx, edx
mov rcx, rbx
call fcn.180396bc8
test eax, eax
jne 0x180130791
mov rcx, rbx
call fcn.180395de4
movsxd rsi, eax
cmp esi, 0xffffffff
je 0x180130791
xor r8d, r8d
mov edx, ebp
mov rcx, rbx
call fcn.180396bc8
test eax, eax
jne 0x180130791
cmp rsi, 0xffffffffffffffff
je 0x180130791
mov rax, qword [0x1804e5b30]
test rax, rax
je 0x180130733
inc dword [rax + 0x3bc]
mov rcx, rsi
call fcn.1803a3b90
mov rbp, rax
test rax, rax
je 0x180130791
mov r9, rbx
mov r8, rsi
mov edx, 1
mov rcx, rax
call fcn.18039dd0c
mov rcx, rbx
cmp rax, rsi
je 0x180130765
call fcn.180396814
jmp 0x180130775
call fcn.180396814
mov rdx, rsi
mov rcx, rbp
call fcn.18013fd60
mov rax, qword [0x1804e5b30]
test rax, rax
je 0x180130787
dec dword [rax + 0x3bc]
mov rcx, rbp
call fcn.18039da98
jmp 0x180130799
mov rcx, rbx
call fcn.180396814
mov byte [rdi + 0x2ef4], 1
movss xmm0, dword [rdi + 0x2ef8]
xorps xmm6, xmm6
xor esi, esi
comiss xmm0, xmm6
jbe 0x1801307e1
subss xmm0, dword [rdi + 0x18]
comiss xmm6, xmm0
movss dword [rdi + 0x2ef8], xmm0
jb 0x1801307e1
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x1801307d4
call fcn.180140080
jmp 0x1801307db
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 0x18013085b
mov rbx, qword [rbx + 0xa8]
cmp dword [rbx + 0x40], esi
jg 0x180130854
mov r8d, 0x4fa
lea rdx, str.D:FolderscodingCAsteroid_PCAsteroidPCimguiimgui.h
lea rcx, str.i___Size
call fcn.1803a3ad8
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax]
call fcn.180138680
mov rax, qword [rdi + 0x1908]
cmp qword [rax + 0x48], rsi
jne 0x180130886
mov r8d, 0xe07
lea rdx, str.D:FolderscodingCAsteroid_PCAsteroidPCimguiimgui.cpp
lea rcx, str.g.Font__IsLoaded__
call fcn.1803a3ad8
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 0x1801308d3
mov dword [rdi + 0x1940], 1
mov eax, 1
cmp byte [rdi + 0x1601], sil
je 0x1801308e5
or eax, r14d
mov dword [rdi + 0x1940], eax
test byte [rdi + 0xc], 8
je 0x1801308f4
or eax, 4
mov dword [rdi + 0x1940], eax
lea rcx, [rdi + 0x1d40]
call fcn.18014b7d0
mov rdx, qword [rdi + 0xa8]
lea rcx, [rdi + 0x1d40]
mov rdx, qword [rdx + 8]
call fcn.18014be90
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.18014bd60
lea rcx, [rdi + 0x1de8]
call fcn.18014b7d0
mov rdx, qword [rdi + 0xa8]
lea rcx, [rdi + 0x1de8]
mov rdx, qword [rdx + 8]
call fcn.18014be90
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.18014bd60
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 0x180130a19
mov eax, dword [rdi + 0x1eb4]
cmp eax, dword [rdi + 0x1a60]
jne 0x180130a19
cmp dword [rdx + 0x1a60], eax
jne 0x180130a0a
mov dword [rdx + 0x1a64], eax
cmp dword [rdx + 0x1a9c], eax
jne 0x180130a19
mov byte [rdx + 0x1aa0], 1
cmp dword [rdi + 0x1a54], esi
jne 0x180130a29
mov dword [rdi + 0x1a58], esi
jmp 0x180130a3b
mov eax, dword [rdi + 0x1a4c]
test eax, eax
je 0x180130a41
cmp dword [rdi + 0x1a60], eax
jne 0x180130a41
mov dword [rdi + 0x1a5c], esi
mov eax, dword [rdi + 0x1a4c]
test eax, eax
je 0x180130a7b
movss xmm1, dword [rdi + 0x18]
movaps xmm0, xmm1
addss xmm0, dword [rdi + 0x1a58]
movss dword [rdi + 0x1a58], xmm0
cmp dword [rdi + 0x1a60], eax
je 0x180130a7b
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 0x180130af3
cmp dword [rdi + 0x1a9c], eax
jne 0x180130af3
test eax, eax
je 0x180130af3
mov ecx, dword [rdx + 0x1a60]
test ecx, ecx
setne al
mov byte [rdx + 0x1a6c], al
test ecx, ecx
je 0x180130aca
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 0x180130b12
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 0x180130b77
cmp ecx, eax
je 0x180130b77
mov dword [rdi + 0x2e90], esi
test ecx, ecx
jne 0x180130b89
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.1803c8f80
movss xmm1, dword [0x1804aa9f4]
lea rcx, [rdi + 0x14d]
lea rax, [rdi + 0x4a4]
mov r8d, 0x80
nop dword [rax]
cmp byte [rcx - 1], sil
je 0x180130bfc
movss xmm0, dword [rax - 4]
comiss xmm6, xmm0
jbe 0x180130bf5
movaps xmm0, xmm6
jmp 0x180130bff
addss xmm0, dword [rdi + 0x18]
jmp 0x180130bff
movaps xmm0, xmm1
movss dword [rax - 4], xmm0
cmp byte [rcx], sil
je 0x180130c1e
movss xmm0, dword [rax]
comiss xmm6, xmm0
jbe 0x180130c17
movaps xmm0, xmm6
jmp 0x180130c21
addss xmm0, dword [rdi + 0x18]
jmp 0x180130c21
movaps xmm0, xmm1
movss dword [rax], xmm0
cmp byte [rcx + 1], sil
je 0x180130c41
movss xmm0, dword [rax + 4]
comiss xmm6, xmm0
jbe 0x180130c3a
movaps xmm0, xmm6
jmp 0x180130c44
addss xmm0, dword [rdi + 0x18]
jmp 0x180130c44
movaps xmm0, xmm1
movss dword [rax + 4], xmm0
cmp byte [rcx + 2], sil
je 0x180130c65
movss xmm0, dword [rax + 8]
comiss xmm6, xmm0
jbe 0x180130c5e
movaps xmm0, xmm6
jmp 0x180130c68
addss xmm0, dword [rdi + 0x18]
jmp 0x180130c68
movaps xmm0, xmm1
movss dword [rax + 8], xmm0
add rcx, 4
add rax, 0x10
sub r8, 1
jne 0x180130be0
call fcn.18013c720
call fcn.18012f4c0
movsxd rax, dword [rdi + 0x314c]
movss xmm1, dword [rdi + 0x18]
movss xmm7, dword [0x1804aa9c0]
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 0x180130d0b
divss xmm1, dword [0x1804aa94c]
movss xmm0, dword [0x1804aa804]
divss xmm0, xmm1
jmp 0x180130d0e
movaps xmm0, xmm7
movss dword [rdi + 0x3a8], xmm0
call fcn.18012fed0
call fcn.18012efc0
mov r8, qword [0x1804e5b30]
mov eax, dword [r8 + 0x1b60]
sub eax, 1
js 0x180130d6b
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 0x180130d61
test dword [rax + 0xc], 0x8000000
jne 0x180130d81
sub r8, 0x30
sub rdx, 1
jns 0x180130d50
cmp qword [rdi + 0x1bc8], rsi
je 0x180130da0
movss xmm0, dword [rdi + 0x1be4]
comiss xmm0, xmm6
jbe 0x180130da0
movss xmm1, dword [rdi + 0x18]
mulss xmm1, dword [0x1804aa8dc]
addss xmm1, dword [rdi + 0x1d38]
minss xmm1, dword [0x1804aa804]
jmp 0x180130dbd
movss xmm0, dword [rdi + 0x18]
mulss xmm0, dword [0x1804aa8ec]
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.18012f990
mov r10, qword [rdi + 0x1b80]
test r10, r10
je 0x180130e39
cmp byte [r10 + 0x7e], sil
je 0x180130e39
test dword [r10 + 0xc], 0x40000
jne 0x180130e39
cmp byte [rdi + 0x148], sil
jne 0x180130e39
mov rax, qword [0x1804e5b30]
mov ecx, dword [rax + 0x3c]
test ecx, ecx
js 0x180130e39
call fcn.180132240
test al, al
je 0x180130e39
mov al, 1
jmp 0x180130e3b
xor al, al
mov byte [rdi + 0x1cd8], al
cmp dword [rdi + 0x1a60], esi
jne 0x180130ea2
test al, al
je 0x180130ea2
mov rax, qword [rdi + 0x1b80]
mov qword [rdi + 0x1cc0], rax
mov dword [rdi + 0x1cd0], 0x7fffffff
cmp dword [rdi + 0x1b88], esi
je 0x180130e91
mov eax, dword [rdi + 0x1bf0]
cmp eax, 0x7fffffff
je 0x180130e91
cmp byte [rdi + 0x149], sil
cmovne r14d, esi
add r14d, eax
mov dword [rdi + 0x1cd4], r14d
jmp 0x180130ea2
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 0x180130f37
mov eax, dword [rdi + 0x1cd0]
mov qword [rdi + 0x1cb8], r8
cmp eax, 0x7fffffff
je 0x180130ef6
mov ecx, dword [r8 + 0x178]
cmp ecx, 0xffffffff
je 0x180130ef6
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [rdi + 0x1cc8], edx
mov eax, dword [rdi + 0x1cd4]
cmp eax, 0x7fffffff
je 0x180130f1c
mov ecx, dword [r8 + 0x17c]
cmp ecx, 0xffffffff
je 0x180130f1c
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 0x180130f6e
mov r8d, 0xe8c
lea rdx, str.D:FolderscodingCAsteroid_PCAsteroidPCimguiimgui.cpp
lea rcx, str.g.WindowsFocusOrder.Size__g.Windows.Size
call fcn.1803a3ad8
mov eax, dword [rdi + 0x19c0]
movss xmm0, dword [rdi + 0xd0]
comiss xmm0, xmm6
jb 0x180130f8b
movsd xmm7, qword [rdi + 0x19a8]
cvtpd2ps xmm7, xmm7
subss xmm7, xmm0
mov ebx, esi
test eax, eax
je 0x180131000
mov r14, rsi
cmp ebx, eax
jl 0x180130fb1
mov r8d, 0x4fa
lea rdx, str.D:FolderscodingCAsteroid_PCAsteroidPCimguiimgui.h
lea rcx, str.i___Size
call fcn.1803a3ad8
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 0x180130ff0
cmp byte [rcx + 0x3a8], sil
jne 0x180130ff0
comiss xmm7, dword [rcx + 0x254]
jbe 0x180130ff0
call fcn.18012e640
mov eax, dword [rdi + 0x19c0]
inc ebx
add r14, 8
cmp ebx, eax
jne 0x180130f96
mov rax, qword [rdi + 0x1b80]
movaps xmm7, xmmword [rsp + 0x20]
test rax, rax
je 0x18013109a
cmp byte [rax + 0x7f], sil
jne 0x18013109a
mov r14, qword [0x1804e5b30]
mov ebx, dword [r14 + 0x19d0]
sub ebx, 1
movsxd rbp, ebx
js 0x180131093
cmp ebx, dword [r14 + 0x19d0]
jl 0x180131053
mov r8d, 0x4fa
lea rdx, str.D:FolderscodingCAsteroid_PCAsteroidPCimguiimgui.h
lea rcx, str.i___Size
call fcn.1803a3ad8
mov rax, qword [r14 + 0x19d8]
mov r8, qword [rax + rbp*8]
test r8, r8
je 0x18013108b
cmp byte [r8 + 0x7f], sil
je 0x18013108b
mov eax, dword [r8 + 0xc]
and eax, 0x40200
cmp eax, 0x40200
setne cl
bt dword [r8 + 0xc], 0x18
setae al
test al, cl
jne 0x18013125a
dec ebx
sub rbp, 1
jns 0x180131031
xor ecx, ecx
call fcn.180137fa0
mov ecx, dword [rdi + 0x19f4]
mov r14, qword [rsp + 0x58]
test ecx, ecx
jns 0x1801310c5
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.1801410f0
mov dword [rdi + 0x19f0], esi
mov ecx, dword [rdi + 0x1b74]
test ecx, ecx
jns 0x1801310f1
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.180141640
mov dword [rdi + 0x1b70], esi
xor edx, edx
mov rcx, qword [rdi + 0x1b80]
call fcn.18013a890
mov rbx, qword [0x1804e5b30]
mov dword [rbx + 0x2f68], esi
cmp byte [rbx + 0x2f64], sil
je 0x1801311fa
mov ebp, dword [rbx + 0x1a54]
mov dword [rbx + 0x1e90], 7
mov ecx, dword [rbx + 0x74]
test ecx, ecx
js 0x180131146
call fcn.180132240
test al, al
je 0x180131146
mov byte [rbx + 0x2f64], sil
mov rax, qword [0x1804e5b30]
movss xmm0, dword [rax + 0x43c]
ucomiss xmm0, xmm6
jp 0x18013116d
jne 0x18013116d
test ebp, ebp
je 0x18013116d
mov dword [rbx + 0x2f68], ebp
mov byte [rbx + 0x2f64], sil
or dword [rax + 0x1ab8], 0x40
mov dword [rax + 0x1b10], 0x3f19999a
call fcn.18013a360
mov edx, ebp
lea rcx, str.HoveredId:_0x_08X
call fcn.180156b70
lea rcx, str.Press_ESC_to_abort_picking.
call fcn.180156b70
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.180156c70
mov rax, qword [0x1804e5b30]
mov rcx, qword [rax + 0x1a18]
test dword [rcx + 0xc], 0x2000000
jne 0x1801311f5
mov r8d, 0x1cee
lea rdx, str.D:FolderscodingCAsteroid_PCAsteroidPCimguiimgui.cpp
lea rcx, str.GetCurrentWindowRead____Flags__ImGuiWindowFlags_Tooltip
call fcn.1803a3ad8
call fcn.180137dd0
mov rax, qword [0x1804e5b30]
lea rcx, str.DebugDefault
movss xmm1, dword [0x1804aa974]
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.180135a40
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 0x180131095