Function at 0x412dd0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x454
mov esi, edx
mov edi, ecx
mov eax, dword [0x57f040]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x410]
push 0x400
push 0xff
push eax
call fcn.004eac00
add esp, 0xc
cmp byte [edi + 0xb], 0
mov dword [ebp - 0x460], esi
jns 0x412e11
mov edi, dword [edi]
sub esp, 0x1c
xor esi, esi
mov dword [esp + 0x18], esi
movaps xmm0, xmmword [0x55ef70]
movups xmmword [esp + 4], xmm0
mov dword [esp], edi
mov dword [esp + 0x14], 0x80
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
lea eax, [ebp - 0x414]
mov dword [eax], 0xffffffff
push esi
push eax
push 0x3ff
lea ebx, [ebp - 0x410]
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov esi, eax
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x413003
mov eax, dword [ebp - 0x414]
mov byte [ebp + eax - 0x410], 0
xorps xmm0, xmm0
movsd qword [ebp - 0x420], xmm0
mov dword [ebp - 0x418], 0
push ebx
call fcn.00501ee0
add esp, 4
cmp eax, 0x7ffffff8
jae 0x4132f2
mov ebx, eax
lea edi, [ebp - 0x42c]
cmp eax, 0xa
jbe 0x412ff6
mov esi, ebx
or esi, 7
inc esi
push esi
call fcn.004e6c0e
add esp, 4
mov dword [ebp - 0x42c], eax
or esi, 0x80000000
mov dword [ebp - 0x424], esi
mov dword [ebp - 0x428], ebx
lea esi, [eax + ebx]
lea edx, [ebp - 0x410]
cmp esi, edx
seta cl
cmp eax, edx
ja 0x412ef4
test cl, cl
jne 0x4132fd
test ebx, ebx
je 0x412f03
push ebx
push edx
push eax
call fcn.004ea680
add esp, 0xc
mov byte [esi], 0
lea eax, [ebp - 0x420]
push eax
push edi
call fcn.00412ab0
add esp, 8
cmp byte [ebp - 0x421], 0
jns 0x412f2d
push dword [ebp - 0x42c]
call fcn.004e6c3e
add esp, 4
xor ebx, ebx
dec ebx
mov dword [ebp - 0x42c], ebx
mov dword [ebp - 0x428], ebx
mov dword [ebp - 0x424], ebx
mov ecx, edi
push str.__subfolder_:
call fcn.00412a10
lea ecx, [ebp - 0x438]
lea edx, [ebp - 0x420]
push edi
call fcn.00413310
add esp, 4
mov esi, dword [ebp - 0x460]
cmp byte [esi + 0xb], 0
jns 0x412f79
push dword [esi]
call fcn.004e6c3e
add esp, 4
mov eax, dword [ebp - 0x430]
mov dword [esi + 8], eax
movsd xmm0, qword [ebp - 0x438]
movsd qword [esi], xmm0
movsx eax, byte [esi + 0xb]
test eax, eax
js 0x412fe4
cmp al, 2
jb 0x412fb2
cmp word [esi], 0x22
jne 0x412fb2
mov ecx, eax
mov edx, esi
test al, al
jns 0x412faa
mov edx, dword [esi]
cmp word [edx + ecx*2 - 2], 0x22
je 0x413019
xor ebx, ebx
cmp byte [ebp - 0x421], 0
jns 0x412fcb
push dword [ebp - 0x42c]
call fcn.004e6c3e
add esp, 4
cmp byte [ebp - 0x415], 0
jns 0x413005
push dword [ebp - 0x420]
call fcn.004e6c3e
add esp, 4
jmp 0x413005
mov ecx, dword [esi + 4]
cmp ecx, 2
jb 0x412fb2
mov edx, dword [esi]
cmp word [edx], 0x22
jne 0x412fb2
jmp 0x412fa2
mov byte [ebp - 0x421], bl
mov eax, edi
jmp 0x412eda
xor ebx, ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e71b0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test al, al
jns 0x413020
mov eax, dword [esi + 4]
add eax, 0xfffffffe
lea edx, [ebp - 0x444]
lea edi, [ebp - 0x438]
mov ecx, edi
push edx
push eax
push 1
push esi
call fcn.004a3330
cmp byte [esi + 0xb], 0
jns 0x41304b
push dword [esi]
call fcn.004e6c3e
add esp, 4
mov eax, dword [ebp - 0x430]
mov dword [esi + 8], eax
movsd xmm0, qword [ebp - 0x438]
movsd qword [esi], xmm0
mov dword [ebp - 0x438], ebx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x430], ebx
mov ecx, edi
push str.__all_users_:
call fcn.00412a10
lea esi, [ebp - 0x444]
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
lea edx, [ebp - 0x420]
mov ecx, esi
push edi
call fcn.00413310
add esp, 4
movsx ecx, byte [esi + 0xb]
mov eax, ecx
test ecx, ecx
jns 0x4130ad
mov eax, dword [ebp - 0x440]
test eax, eax
je 0x4130f2
mov dword [ebp - 0x460], esp
push eax
sub esp, 8
mov edi, esp
cmp byte [ebp - 0x439], 0
js 0x413126
mov eax, dword [ebp - 0x43c]
mov dword [edi + 8], eax
movsd xmm0, qword [ebp - 0x444]
movsd qword [edi], xmm0
mov ecx, edi
call fcn.00413760
mov esp, dword [ebp - 0x460]
mov cl, byte [ebp - 0x439]
test al, al
jne 0x41314a
xor ebx, ebx
test cl, cl
jns 0x413106
push dword [ebp - 0x444]
call fcn.004e6c3e
add esp, 4
cmp byte [ebp - 0x42d], 0
jns 0x412fb4
push dword [ebp - 0x438]
call fcn.004e6c3e
add esp, 4
jmp 0x412fb4
mov ecx, edi
push dword [ebp - 0x440]
push dword [ebp - 0x444]
call fcn.004a3060
jmp 0x4130db
test cl, cl
cmovs esi, edx
cmp word [esi + 6], 0x65
sete cl
jmp 0x41319c
movzx edi, cl
test cl, cl
cmovs edi, dword [ebp - 0x440]
mov edx, dword [ebp - 0x444]
mov eax, esi
cmovs eax, edx
test edi, edi
js 0x4132e3
je 0x413173
test eax, eax
je 0x4132dc
cmp edi, 4
jne 0x41319a
cmp word [eax], 0x74
jne 0x41319a
test cl, cl
mov eax, esi
cmovs eax, edx
cmp word [eax + 2], 0x72
jne 0x41319a
test cl, cl
mov eax, esi
cmovs eax, edx
cmp word [eax + 4], 0x75
je 0x41313b
xor ecx, ecx
mov eax, dword [ebp + 8]
mov byte [eax], cl
lea edi, [ebp - 0x450]
mov dword [edi], ebx
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov ecx, edi
push str.__launch_from_install_dir_:
call fcn.00412a10
lea esi, [ebp - 0x45c]
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
lea edx, [ebp - 0x420]
mov ecx, esi
push edi
call fcn.00413310
add esp, 4
movsx ecx, byte [esi + 0xb]
mov eax, ecx
test ecx, ecx
jns 0x4131ea
mov eax, dword [ebp - 0x458]
test eax, eax
je 0x413290
mov ebx, esp
push eax
sub esp, 8
mov edi, esp
cmp byte [ebp - 0x451], 0
js 0x41322f
mov eax, dword [ebp - 0x454]
mov dword [edi + 8], eax
movsd xmm0, qword [ebp - 0x45c]
movsd qword [edi], xmm0
mov ecx, edi
call fcn.00413760
mov esp, ebx
mov cl, byte [ebp - 0x451]
test al, al
jne 0x413244
xor ebx, ebx
jmp 0x413299
mov ecx, edi
push dword [ebp - 0x458]
push dword [ebp - 0x45c]
call fcn.004a3060
jmp 0x413218
movzx edx, cl
test cl, cl
cmovs edx, dword [ebp - 0x458]
mov eax, dword [ebp - 0x45c]
mov edi, esi
cmovs edi, eax
test edx, edx
js 0x4132e3
je 0x413269
test edi, edi
je 0x4132dc
cmp edx, 4
jne 0x413290
cmp word [edi], 0x74
jne 0x413290
test cl, cl
mov edx, esi
cmovs edx, eax
cmp word [edx + 2], 0x72
jne 0x413290
test cl, cl
mov edx, esi
cmovs edx, eax
cmp word [edx + 4], 0x75
je 0x4132cd
xor eax, eax
mov edx, dword [ebp + 0xc]
mov byte [edx], al
mov bl, 1
test cl, cl
jns 0x4132ab
push dword [ebp - 0x45c]
call fcn.004e6c3e
add esp, 4
cmp byte [ebp - 0x445], 0
jns 0x4132c2
push dword [ebp - 0x450]
call fcn.004e6c3e
add esp, 4
mov cl, byte [ebp - 0x439]
jmp 0x4130f4
test cl, cl
cmovs esi, eax
cmp word [esi + 6], 0x65
sete al
jmp 0x413292
push str....._third_partylibc_srcinclude_string_view:316:_assertion___len__0____s___nullptr_failed:_string_view::string_view__CharT___size_t_:_received_nullptr_n
jmp 0x4132e8
push str....._third_partylibc_srcinclude_string_view:314:_assertion___len___static_cast_size_type__numeric_limits_difference_type_::max____failed:_string_view::string_view__CharT___size_t_:_length_does_not_fit_in_difference_type_n
push 0x55eb93
call fcn.00516c70
lea ecx, [ebp - 0x42c]
call fcn.00516100
push str....._third_partylibc_srcinclude__stringchar_traits.h:146:_assertion__std::__is_pointer_in_range___s1____s1____n____s2__failed:_char_traits::copy:_source_and_destination_ranges_overlap_n
jmp 0x4132e8