Function at 0x4208f6
Capabilities:
Check if file exists
Create directory
Delete file
Get common file path
Move file
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xa3c
mov eax, dword [0x491b98]
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x9e4], 0x49ead4
mov dword [ebp - 0x9e0], 0x49ead9
mov dword [ebp - 0x9dc], 0x49eadf
test eax, eax
je 0x421e59
cmp dword [ebp + 8], 0
je 0x421e57
cmp dword [ebp + 0xc], 0
je 0x421e57
mov dword [0x5135a8], edx
test edx, edx
mov eax, 0x49eabf
mov esi, 0x49e00b
mov dword [esp], 0x41c79a
cmovne esi, eax
call fcn.00484ee0
mov eax, dword [ebp + 0xc]
cmp dword [0x5135a8], 0
mov dword [0x5135cc], eax
je 0x420a18
mov dword [esp], str.ISO_analysis:
call fcn.0043efa9
xor eax, eax
mov dword [esp + 8], 8
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x8002
mov eax, dword [0x526d5c]
mov dword [esp], eax
call dword [sym.imp.USER32.dll_SendMessageW]
xor edx, edx
sub esp, 0x10
mov dword [0x5135c0], edx
mov dword [0x5135c4], edx
mov dword [0x5135b8], edx
mov dword [0x5135bc], edx
mov dword [0x512d80], edx
mov dword [esp + 4], 8
mov dword [esp], 0x51359c
call fcn.0043d61c
mov dword [esp + 4], 8
mov dword [esp], 0x513590
call fcn.0043d61c
xor ecx, ecx
mov dword [esp + 0xc], 0xc82
mov dword [esp + 8], ecx
mov dword [esp + 4], ecx
mov dword [esp], 1
call fcn.00422ac2
jmp 0x420ab1
mov dword [esp], str.Extracting_files..._n
call fcn.0043efa9
mov eax, 0x5265a0
call fcn.0041d93b
mov ebx, eax
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__wchdir]
test ebx, ebx
je 0x420a45
mov dword [esp], ebx
call sub.msvcrt.dll_free
cmp dword [0x5135c4], 0
jne 0x420a80
cmp dword [0x5135c0], 0
jne 0x420a80
mov dword [esp], str.Error:_ISO_has_not_been_properly_scanned._n
call fcn.0043efa9
xor eax, eax
mov dword [0x4e2900], 0xe0031207
mov dword [ebp - 0xa08], eax
mov dword [ebp - 0x9fc], eax
jmp 0x420bde
xor eax, eax
mov byte [0x513480], 0
mov dword [0x5135b0], eax
mov dword [0x5135b4], eax
mov dword [0x491ba0], eax
mov dword [0x491ba4], eax
mov dword [esp + 4], 8
mov dword [esp], 0x513584
call fcn.0043d61c
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00483e22
mov dword [ebp - 0xa08], eax
test eax, eax
je 0x420b6a
mov dword [esp + 4], esi
mov dword [esp], str._sImage_is_a_UDF_image
call fcn.0043efa9
xor eax, eax
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xa08]
mov dword [esp], eax
call fcn.004840f8
mov ebx, eax
test eax, eax
jne 0x420b0e
mov dword [esp + 4], esi
mov dword [esp], str._sCould_not_locate_UDF_root_directory
call fcn.0043efa9
jmp 0x420b6a
xor eax, eax
cmp dword [0x5135a8], 0
mov dword [ebp - 0x9fc], eax
je 0x420b59
mov dword [esp + 8], 0xc0
mov dword [esp + 4], 0x512da0
mov eax, dword [ebp - 0xa08]
mov dword [esp], eax
call fcn.00484056
test eax, eax
jg 0x420b48
mov byte [0x512da0], 0
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0048205f
mov dword [ebp - 0x9fc], eax
mov edx, 0x49e00b
mov eax, ebx
call fcn.0041db8d
jmp 0x420ced
cmp dword [0x491b94], 0
mov eax, dword [0x491b90]
je 0x420b9e
test eax, eax
je 0x420ba6
cmp dword [0x5135a8], 0
mov bl, 0xf8
jne 0x420bab
cmp byte [0x513302], 0
jne 0x420bab
cmp byte [0x513300], 1
mov al, 0xff
cmovne ebx, eax
jmp 0x420bab
mov bl, 0xf8
test eax, eax
jne 0x420bab
jmp 0x420ba8
mov bl, 0xff
and ebx, 0xfffffff7
movzx eax, bl
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00482048
mov dword [ebp - 0x9fc], eax
test eax, eax
jne 0x420bed
mov eax, dword [ebp + 8]
mov dword [esp + 4], esi
mov dword [esp], str._s_s_doesnt_look_like_an_ISO_image
mov dword [esp + 8], eax
call fcn.0043efa9
mov dword [ebp - 0xa00], 1
jmp 0x420cf3
mov dword [esp + 4], esi
mov dword [esp], str._sImage_is_an_ISO9660_image
call fcn.0043efa9
mov eax, dword [ebp - 0x9fc]
mov dword [esp], eax
call fcn.0048114b
cmp dword [0x5135a8], 0
mov byte [0x5135c8], al
je 0x420ca2
lea eax, [ebp - 0x9f0]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9fc]
mov dword [esp], eax
call fcn.004811ce
test al, al
je 0x420c99
mov ebx, dword [ebp - 0x9f0]
mov ecx, 1
test ebx, ebx
je 0x420c5d
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea ecx, [eax + 1]
mov eax, 0xc0
cmp ecx, eax
cmova ecx, eax
mov edi, 0x512da0
mov esi, ebx
rep movsb byte es:[edi], byte [esi]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, 0x512e5f
lea ecx, [eax + 1]
cmp ecx, 0xbf
ja 0x420c84
lea edx, [eax + 0x512da0]
mov byte [edx], 0
xor edi, edi
mov dword [esp], ebx
call sub.msvcrt.dll_free
mov dword [ebp - 0x9f0], edi
jmp 0x420cdd
mov byte [0x512da0], 0
jmp 0x420cdd
test bl, 0xf
je 0x420ccd
and bl, 7
mov edx, str.Joliet
mov eax, str.Rock_Ridge
mov dword [esp + 4], esi
cmovne eax, edx
mov dword [esp], str._sThis_image_will_be_extracted_using__s_extensions__if_present_
mov dword [esp + 8], eax
call fcn.0043efa9
jmp 0x420cdd
mov dword [esp + 4], esi
mov dword [esp], str._sThis_image_will_not_be_extracted_using_any_ISO_extensions
call fcn.0043efa9
mov eax, dword [ebp - 0x9fc]
mov edx, 0x49e00b
call fcn.0041e283
mov dword [ebp - 0xa00], eax
cmp dword [0x5135a8], 0
mov dword [0x491ba0], 0xffffffff
mov dword [0x491ba4], 0xffffffff
je 0x42169b
lea eax, [ebp - 0x818]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9fc]
mov dword [esp], eax
call fcn.00481476
test al, al
je 0x420d8c
mov eax, dword [ebp + 8]
call fcn.0041d93b
mov ebx, eax
lea eax, [ebp - 0x9d8]
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [sym.imp.msvcrt.dll__wstat64]
mov esi, eax
test ebx, ebx
je 0x420d5b
mov dword [esp], ebx
call sub.msvcrt.dll_free
test esi, esi
jne 0x420d8c
lea eax, [ebp - 0x818]
mov dword [esp], eax
call fcn.0048039e
cdq
shld edx, eax, 0xb
shl eax, 0xb
sub eax, dword [ebp - 0x9c0]
sbb edx, dword [ebp - 0x9bc]
mov dword [0x5132e8], eax
mov dword [0x5132ec], edx
mov dword [esp], 0x512da0
call sub.msvcrt.dll_strlen
mov esi, dword [sym.imp.msvcrt.dll_isspace]
lea ebx, [eax - 1]
test ebx, ebx
jle 0x420dbf
movzx eax, byte [ebx + 0x512da0]
mov dword [esp], eax
call esi
test eax, eax
je 0x420dbf
mov byte [ebx + 0x512da0], 0
dec ebx
jmp 0x420da1
mov eax, dword [0x5135c0]
mov edx, dword [0x5135c4]
shld edx, eax, 0xb
shl eax, 0xb
cmp dword [0x5135a0], 0
mov dword [0x5132e0], eax
mov dword [0x5132e4], edx
je 0x4212dd
mov edx, 0x512f20
mov ecx, 0x7f
mov al, 0x5f
xor ebx, ebx
mov edi, edx
mov byte [0x512f9f], 0
rep stosb byte es:[edi], al
cmp ebx, dword [0x5135a0]
jae 0x420f2b
mov dword [esp + 4], str._boot_i386_loader_isolinux.cfg
mov eax, dword [0x51359c]
lea esi, [ebx*4]
mov edi, dword [sym.imp.msvcrt.dll__stricmp]
mov eax, dword [eax + ebx*4]
mov dword [esp], eax
call edi
test eax, eax
jne 0x420e5e
add esi, dword [0x51359c]
mov ecx, 1
mov ebx, esi
mov esi, dword [esi]
test esi, esi
je 0x420e79
mov dword [esp], esi
call sub.msvcrt.dll_strlen
lea ecx, [eax + 1]
mov eax, pe_nt_image_headers32
cmp ecx, eax
cmova ecx, eax
jmp 0x420e79
mov dword [esp + 4], str._boot_x86_64_loader_isolinux.cfg
mov eax, dword [0x51359c]
mov eax, dword [eax + ebx*4]
mov dword [esp], eax
call edi
test eax, eax
jne 0x420eb2
jmp 0x420e34
mov edi, 0x512f20
mov edx, 0x512f20
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx]
test eax, eax
je 0x420ea6
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edx, 0x512f9f
lea ecx, [eax + 1]
cmp ecx, 0x7f
ja 0x420ea6
lea edx, [eax + 0x512f20]
mov byte [edx], 0
mov byte [0x51330f], 1
jmp 0x420f2b
mov dword [esp], 0x512f20
call sub.msvcrt.dll_strlen
add esi, dword [0x51359c]
mov dword [ebp - 0xa04], esi
mov esi, dword [esi]
mov edi, eax
test esi, esi
je 0x420eed
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov ecx, eax
cmp edi, eax
jb 0x420f25
inc ecx
mov eax, pe_nt_image_headers32
cmp ecx, eax
cmova ecx, eax
jmp 0x420ef2
mov ecx, 1
mov edx, 0x512f20
mov eax, dword [ebp - 0xa04]
mov edi, edx
rep movsb byte es:[edi], byte [esi]
mov eax, dword [eax]
test eax, eax
je 0x420f22
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edx, 0x512f9f
lea ecx, [eax + 1]
cmp ecx, 0x7f
ja 0x420f22
lea edx, [eax + 0x512f20]
mov byte [edx], 0
inc ebx
jmp 0x420e02
mov dword [esp + 4], 0x512f20
xor esi, esi
mov dword [esp], str.__Will_use__s_for_Syslinux
call fcn.0043efa9
xor ecx, ecx
mov dword [ebp - 0xa04], ecx
mov eax, dword [ebp - 0xa04]
cmp eax, dword [0x513594]
jae 0x4211eb
lea edi, [ebp - 0x91c]
mov dword [esp + 0xc], 0x5267e0
mov dword [esp + 8], str._sisolinux.tmp
mov dword [esp + 4], 0x104
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll__snprintf]
mov eax, dword [ebp - 0xa04]
mov byte [ebp - 0x819], 0
shl eax, 2
mov dword [ebp - 0xa14], eax
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 8], edi
mov eax, dword [0x513590]
mov ecx, dword [ebp - 0xa04]
mov eax, dword [eax + ecx*4]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0041f804
mov ebx, eax
test eax, eax
jne 0x420fea
mov edi, dword [ebp - 0xa04]
mov eax, dword [0x513590]
mov eax, dword [eax + edi*4]
mov dword [esp], str.__Could_not_access__s
mov dword [esp + 4], eax
call fcn.0043efa9
jmp 0x4211d5
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.msvcrt.dll_calloc
mov dword [ebp - 0xa0c], eax
test eax, eax
je 0x4211eb
mov dword [esp], edi
mov dword [esp + 4], 0x49ecb1
call sub.msvcrt.dll_fopen
mov edi, eax
test eax, eax
jne 0x421031
mov eax, dword [ebp - 0xa0c]
mov dword [esp], eax
call sub.msvcrt.dll_free
jmp 0x4211e0
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov eax, dword [ebp - 0xa0c]
mov dword [esp], eax
call sub.msvcrt.dll_fread
mov dword [esp], edi
call sub.msvcrt.dll_fclose
lea eax, [ebp - 0x9e8]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xa0c]
mov dword [esp], eax
call fcn.00448808
mov edx, dword [0x51331c]
mov ebx, dword [ebp - 0x9e8]
mov word [ebp - 0xa10], ax
test dx, dx
je 0x421170
cmp dx, word [ebp - 0xa10]
jne 0x4210c6
test ebx, ebx
mov eax, 0x49ddf0
mov dword [ebp - 0xa18], edx
cmovne eax, ebx
mov dword [esp], 0x51332a
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcmp
mov edx, dword [ebp - 0xa18]
test eax, eax
je 0x4211c7
mov eax, dword [0x513590]
mov dword [esp + 0x20], ebx
movzx ecx, byte [ebp - 0xa10]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp - 0xa10]
movzx ecx, ch
mov dword [esp + 0x18], ecx
mov edi, dword [ebp - 0xa14]
mov ecx, dword [eax + edi]
mov dword [esp + 0x10], 0x51332a
mov dword [esp + 0x14], ecx
movzx ecx, dl
movzx edx, dh
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov eax, dword [eax + esi*4]
mov dword [esp], str.__Found_conflicting_isolinux_versions:_n___s___d._02d_s__vs__s___d._02d_s_
mov dword [esp + 4], eax
call fcn.0043efa9
mov dword [esp], 0x512f20
call sub.msvcrt.dll_strlen
test eax, eax
je 0x421139
cmp byte [eax + 0x512f20], 0x2f
je 0x421139
dec eax
jmp 0x421129
mov edx, dword [0x513590]
mov edi, dword [ebp - 0xa14]
mov edx, dword [edx + edi]
test edx, edx
jne 0x421151
mov edx, 0x49ddf0
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], 0x512f20
call dword [sym.imp.msvcrt.dll__strnicmp]
test eax, eax
jne 0x4211c7
mov ebx, dword [ebp - 0x9e8]
mov ecx, 1
test ebx, ebx
je 0x42118e
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea ecx, [eax + 1]
mov eax, 0x20
cmp ecx, eax
cmova ecx, eax
mov edi, 0x51332a
mov esi, ebx
rep movsb byte es:[edi], byte [esi]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, 0x513349
lea ecx, [eax + 1]
cmp ecx, 0x1f
ja 0x4211b2
lea edx, [eax + 0x51332a]
mov byte [edx], 0
mov eax, dword [ebp - 0xa10]
mov esi, dword [ebp - 0xa04]
mov word [0x51331c], ax
mov eax, dword [ebp - 0xa0c]
mov dword [esp], eax
call sub.msvcrt.dll_free
lea eax, [ebp - 0x91c]
call fcn.0041f020
inc dword [ebp - 0xa04]
jmp 0x420f49
mov eax, dword [0x51331c]
test ax, ax
je 0x42127d
movzx edx, al
movzx eax, ah
mov dword [esp + 8], 0x49ed02
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0xc
mov dword [esp], 0x51331e
call dword [sym.imp.msvcrt.dll__snprintf]
mov eax, dword [0x513590]
mov byte [0x513329], 0
mov eax, dword [eax + esi*4]
mov dword [esp + 8], 0x51332a
mov dword [esp + 4], 0x51331e
mov dword [esp + 0xc], eax
mov dword [esp], str.__Detected_Syslinux_version:__s_s__from__s_
call fcn.0043efa9
cmp dword [0x512d80], 0
mov eax, dword [0x51331c]
je 0x421269
cmp ax, 0x4ff
jbe 0x42126f
jmp 0x4212dd
cmp ax, 0x4ff
jbe 0x4212dd
mov dword [esp], str.__Warning:_Conflict_between_Isolinux_version_and_the_presence_of_ldlinux.c32...
call fcn.0043efa9
jmp 0x4212dd
xor eax, eax
cmp dword [0x512d80], 0
setne al
mov ax, word [eax + eax + 0x526d34]
mov word [0x51331c], ax
movzx edx, al
movzx eax, ah
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x49ed02
mov dword [esp + 4], 0xc
mov dword [esp], 0x51331e
call dword [sym.imp.msvcrt.dll__snprintf]
mov byte [0x513329], 0
mov dword [esp + 4], 0x51331e
mov dword [esp], str.__Warning:_Could_not_detect_Isolinux_version___Forcing_to__s__embedded_
call fcn.0043efa9
cmp word [0x5132fc], 0
jne 0x421302
cmp byte [0x51324c], 0
je 0x421302
call fcn.0041fee2
test eax, eax
je 0x421302
mov word [0x5132fc], 0x8000
mov ax, word [0x5132fa]
mov edx, eax
not edx
and dl, 7
je 0x42132d
mov edx, eax
not edx
test dl, 0x23
je 0x421331
mov eax, edx
test ax, 0x1c0
jne 0x421424
mov eax, 2
jmp 0x421336
xor eax, eax
jmp 0x421336
mov eax, 1
mov eax, dword [ebp + eax*4 - 0x9e4]
lea ebx, [ebp - 0x91c]
mov dword [esp + 8], str.__s_txtsetup.sif
mov dword [esp], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x104
call dword [sym.imp.msvcrt.dll__snprintf]
mov byte [ebp - 0x819], 0
mov dword [esp + 4], ebx
xor ebx, ebx
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 8], str.._txtsetup.sif
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0041f804
mov dword [esp + 8], 1
mov dword [esp + 4], str.._txtsetup.sif
mov dword [esp], str.OsLoadOptions
call fcn.00427fbf
mov esi, dword [sym.imp.msvcrt.dll_tolower]
mov dword [ebp - 0x9f0], eax
test eax, eax
je 0x421404
mov edi, dword [ebp - 0x9f0]
mov dword [esp], edi
call sub.msvcrt.dll_strlen
cmp ebx, eax
jae 0x4213d5
add edi, ebx
inc ebx
movsx eax, byte [edi]
mov dword [esp], eax
call esi
mov byte [edi], al
jmp 0x4213b4
mov dword [esp + 4], edi
mov dword [esp], str.__Checking_txtsetup.sif:_n__OsLoadOptions___s
call fcn.0043efa9
mov dword [esp + 4], str._minint
mov eax, dword [ebp - 0x9f0]
mov dword [esp], eax
call sub.msvcrt.dll_strstr
test eax, eax
setne byte [0x513312]
mov eax, str.._txtsetup.sif
call fcn.0041f020
mov eax, dword [ebp - 0x9f0]
mov dword [esp], eax
call sub.msvcrt.dll_free
xor edx, edx
mov dword [ebp - 0x9f0], edx
cmp byte [0x5132ff], 0
je 0x42143d
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0041fc62
mov dword [0x5132f0], eax
movzx eax, byte [0x51330c]
test al, al
je 0x42165b
mov eax, dword [eax*4 + 0x49f2b4]
mov dword [esp + 8], str._s_normal.mod
mov dword [esp + 4], pe_nt_image_headers32
inc eax
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x99c]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__snprintf]
mov eax, 0x5267e0
mov byte [ebp - 0x91d], 0
mov byte [0x51334a], 0
call fcn.0041d93b
mov edi, eax
mov eax, 0x49e1f2
call fcn.0041d93b
mov dword [ebp - 0xa04], eax
mov dword [esp + 4], 2
mov dword [esp], 0x104
call sub.msvcrt.dll_calloc
mov dword [esp + 0xc], eax
mov esi, eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xa04]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.DLL_GetTempFileNameW]
mov ebx, eax
mov eax, dword [sym.imp.KERNEL32.DLL_GetLastError]
sub esp, 0x10
mov dword [ebp - 0xa10], eax
call eax
mov dword [ebp - 0xa0c], eax
test ebx, ebx
je 0x421542
xor eax, eax
mov dword [esp + 0x14], 0x104
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x91c]
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], 0xfde9
call dword [sym.imp.KERNEL32.DLL_WideCharToMultiByte]
sub esp, 0x20
mov ebx, eax
test eax, eax
jne 0x421542
mov eax, dword [ebp - 0xa10]
call eax
mov dword [ebp - 0xa0c], eax
test esi, esi
je 0x42154e
mov dword [esp], esi
call sub.msvcrt.dll_free
cmp dword [ebp - 0xa04], 0
je 0x421565
mov eax, dword [ebp - 0xa04]
mov dword [esp], eax
call sub.msvcrt.dll_free
test edi, edi
je 0x421571
mov dword [esp], edi
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0xa0c]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_SetLastError]
push eax
test ebx, ebx
je 0x42163f
lea ecx, [ebp - 0x99c]
lea edi, [ebp - 0x91c]
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0041f804
mov dword [esp + 4], 1
mov dword [esp], eax
mov esi, eax
call sub.msvcrt.dll_calloc
mov dword [esp], edi
mov dword [esp + 4], 0x49ecb1
mov ebx, eax
call sub.msvcrt.dll_fopen
test ebx, ebx
lea ecx, [ebp - 0x99c]
sete dl
test eax, eax
mov edi, eax
sete al
or al, dl
jne 0x4215ee
test esi, esi
jne 0x421600
mov dword [esp + 4], ecx
mov dword [esp], str.__Could_not_read_Grub_version_from__s
call fcn.0043efa9
jmp 0x42162c
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp + 4], 1
mov dword [esp], ebx
call sub.msvcrt.dll_fread
mov dword [esp], edi
call sub.msvcrt.dll_fclose
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0041f585
mov dword [esp], ebx
call sub.msvcrt.dll_free
lea eax, [ebp - 0x91c]
call fcn.0041f020
cmp byte [0x51334a], 0
jne 0x42165b
mov dword [esp], str.__Could_not_detect_Grub_version
call fcn.0043efa9
mov byte [0x51330c], 0
mov dword [esp], 0x51359c
call fcn.0043d77d
mov dword [esp], 0x513590
call fcn.0043d77d
xor eax, eax
mov dword [esp + 4], 0x8003
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
mov eax, dword [0x526d5c]
mov dword [esp], eax
call dword [sym.imp.USER32.dll_SendMessageW]
sub esp, 0x10
jmp 0x421e08
mov eax, dword [0x5132fc]
cmp ax, 0x3fff
jbe 0x4216fc
test ah, 0x40
je 0x4216eb
mov dword [esp], str.Broken_UEFI_bootloader_detected___Applying_workaround:
lea ebx, [ebp - 0x91c]
call fcn.0043efa9
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], str._sEFI_boot_bootx64.efi
mov dword [esp + 4], 0x104
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call dword [sym.imp.msvcrt.dll__snprintf]
mov eax, ebx
mov byte [ebp - 0x819], 0
call fcn.0041f020
xor edi, edi
mov dword [esp + 4], edi
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.004201a4
cmp word [0x51331c], 0
je 0x421a7b
mov eax, dword [ebp + 0xc]
lea ebx, [ebp - 0x91c]
mov dword [esp + 8], str._s_syslinux.cfg
mov dword [esp + 4], 0x104
mov esi, dword [sym.imp.msvcrt.dll__snprintf]
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call esi
mov byte [ebp - 0x819], 0
mov dword [esp + 4], 0x49eeea
mov dword [esp], ebx
call sub.msvcrt.dll_fopen
mov edi, eax
test eax, eax
je 0x4217ad
cmp byte [0x51330f], 0
je 0x421862
mov dword [esp], eax
lea edi, [ebp - 0x9d8]
call sub.msvcrt.dll_fclose
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], str._s_syslinux.org
mov dword [esp + 4], 0x10
mov dword [esp + 0xc], eax
mov dword [esp], edi
call esi
mov byte [ebp - 0x9c9], 0
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], str.Renaming:__s___s
call fcn.0043efa9
mov dword [esp + 4], edi
mov dword [esp], ebx
call sub.msvcrt.dll_rename
lea ebx, [ebp - 0x91c]
mov dword [esp + 4], 0x49ef10
mov dword [esp], ebx
call sub.msvcrt.dll_fopen
mov edi, eax
test eax, eax
jne 0x4217e8
mov dword [esp + 4], ebx
mov dword [esp], str.Unable_to_create__s___booting_from_USB_will_not_work
call fcn.0043efa9
mov dword [ebp - 0xa00], 1
jmp 0x42186a
mov dword [esp + 8], 0x512f20
mov dword [esp + 4], str.DEFAULT_loadconfig_n_nLABEL_loadconfig_n__CONFIG__s_n
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 0x512f20
call sub.msvcrt.dll_strlen
mov ebx, eax
test ebx, ebx
je 0x421844
cmp byte [ebx + 0x512f20], 0x2f
je 0x42181e
dec ebx
jmp 0x42180e
mov byte [ebx + 0x512f20], 0
mov dword [esp + 8], 0x512f20
mov dword [esp + 4], str.__APPEND__s__n
mov dword [esp], edi
call sub.msvcrt.dll_fprintf
mov byte [ebx + 0x512f20], 0x2f
lea eax, [ebp - 0x91c]
mov dword [esp + 8], 0x512f20
mov dword [esp + 4], eax
mov dword [esp], str.Created:__s___s
call fcn.0043efa9
mov dword [esp], edi
call sub.msvcrt.dll_fclose
cmp byte [0x513480], 0
mov esi, 0x513480
je 0x421aaf
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov ebx, eax
lea eax, [ebp - 0x818]
mov edi, eax
lea ecx, [ebx + 1]
rep movsb byte es:[edi], byte [esi]
mov dword [esp], 0x513480
call sub.msvcrt.dll_strlen
mov byte [ebp + eax - 0x818], 0
cmp ebx, 8
ja 0x4218c8
mov dword [esp + 8], 0x538
mov dword [esp + 4], str.iso.c
mov dword [esp], str.len___8
jmp 0x421bab
mov byte [ebp + ebx - 0x820], 0x69
xor edi, edi
mov byte [ebp + ebx - 0x81f], 0x73
mov byte [ebp + ebx - 0x81e], 0x6f
xor ebx, ebx
mov dword [esp], 0x513480
call dword [sym.imp.KERNEL32.DLL_DeleteFileA]
push ecx
mov dword [esp + 4], ebx
mov dword [esp], 0x513480
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryA]
push esi
push esi
mov ecx, dword [sym.imp.msvcrt.dll__snprintf]
mov esi, dword [edi*4 + 0x49f208]
lea eax, [ebp - 0x818]
lea ebx, [ebp - 0x91c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], esi
mov dword [esp + 8], 0x49e469
mov dword [esp + 4], 0x104
mov dword [esp], ebx
mov dword [ebp - 0xa04], ecx
call ecx
mov byte [ebp - 0x819], 0
mov dword [esp], ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
push edx
test eax, eax
je 0x421a6d
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0x513480
mov dword [esp + 8], 0x49e469
mov dword [esp + 4], 0x104
mov dword [esp], ebx
mov ecx, dword [ebp - 0xa04]
call ecx
mov byte [ebp - 0x819], 0
mov dword [esp + 4], 0x49ef10
mov dword [esp], ebx
call sub.msvcrt.dll_fopen
mov ecx, dword [ebp - 0xa04]
test eax, eax
jne 0x4219c1
mov dword [esp + 4], ebx
mov dword [esp], str.Unable_to_create__s___booting_from_USB_may_not_work
call fcn.0043efa9
mov dword [ebp - 0xa00], 1
jmp 0x421a6d
mov dword [ebp - 0xa04], eax
lea eax, [ebp - 0x818]
mov dword [esp], ebx
lea ebx, [ebp - 0x91a]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x49e469
mov dword [esp + 4], 0x104
call ecx
lea eax, [ebp - 0x816]
mov byte [ebp - 0x819], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], str.DEFAULT_loadconfig_n_nLABEL_loadconfig_n__CONFIG__s_n__APPEND__s_n
mov edx, dword [ebp - 0xa04]
mov dword [esp], edx
call sub.msvcrt.dll_fprintf
mov edx, dword [ebp - 0xa04]
mov dword [esp], edx
call sub.msvcrt.dll_fclose
mov ecx, 0x5c
mov edx, 0x2f
mov eax, 0x513480
call fcn.0041d2ee
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], 0x513480
mov dword [esp], str.Created:__s_s___s
call fcn.0043efa9
mov ecx, 0x2f
mov edx, 0x5c
mov eax, 0x513480
call fcn.0041d2ee
test edi, edi
jne 0x421aaf
mov edi, 1
jmp 0x421905
cmp word [0x513304], 0
je 0x421aaf
cmp dword [0x526cc4], 0
je 0x421aaf
xor ebx, ebx
mov dword [esp + 8], 1
mov dword [esp + 0xc], ebx
mov eax, dword [ebp + 0xc]
mov dword [esp], str.compact__u_bootmgr_efi_boot_.efi
mov dword [esp + 4], eax
call fcn.0043dd22
mov eax, dword [ebp + 0xc]
mov edx, dword [sym.imp.msvcrt.dll__snprintf]
lea ebx, [ebp - 0x91c]
mov dword [esp + 8], str._s_slax_bootEFI
mov dword [esp + 4], 0x104
mov dword [esp + 0xc], eax
mov dword [esp], ebx
mov dword [ebp - 0xa04], edx
call edx
mov byte [ebp - 0x819], 0
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
mov dword [esp], ebx
call edi
test eax, eax
push ecx
mov edx, dword [ebp - 0xa04]
je 0x421b73
mov eax, dword [ebp + 0xc]
lea esi, [ebp - 0x818]
mov dword [esp + 8], str._sEFI
mov dword [esp + 4], 0x10
mov dword [esp + 0xc], eax
mov dword [esp], esi
call edx
mov byte [ebp - 0x809], 0
mov dword [esp], esi
call edi
push edx
test eax, eax
jne 0x421b73
mov dword [esp + 4], esi
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.DLL_MoveFileA]
push edi
push edi
test eax, eax
je 0x421b56
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], str.Moved:__s___s
call fcn.0043efa9
jmp 0x421b73
call fcn.0043f53d
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 4], ebx
mov dword [esp], str.Could_not_move__s___s
call fcn.0043efa9
movzx eax, byte [0x5132fe]
xor ebx, ebx
mov dword [ebp - 0x9ec], ebx
mov dword [ebp - 0x9e8], ebx
test al, al
je 0x421d96
cmp al, 2
jbe 0x421bb1
mov dword [esp + 8], 0x1ee
mov dword [esp + 4], str.iso.c
mov dword [esp], str.img_report.has_md5sum___ARRAYSIZE_md5sum_name_
call dword [0x494088]
mov eax, dword [eax*4 + 0x49f37c]
lea ebx, [ebp - 0x818]
mov dword [esp + 0x10], eax
mov eax, dword [0x5135cc]
mov dword [esp + 8], 0x49f0f8
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x40
mov dword [esp], ebx
call dword [sym.imp.msvcrt.dll__snprintf]
lea eax, [ebp - 0x9e8]
mov byte [ebp - 0x7d9], 0
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0043f190
mov dword [ebp - 0xa04], eax
test eax, eax
je 0x421d96
xor esi, esi
mov edx, 1
mov ecx, dword [ebp - 0x9e8]
cmp esi, dword [0x513588]
jae 0x421d6c
mov eax, dword [0x513584]
mov dword [ebp - 0xa0c], edx
lea edi, [esi*4]
mov eax, dword [eax + esi*4]
mov dword [esp], ecx
add eax, 2
mov dword [esp + 4], eax
call sub.msvcrt.dll_strstr
mov edx, dword [ebp - 0xa0c]
test eax, eax
mov ebx, eax
je 0x421d66
test edx, edx
je 0x421c72
lea eax, [ebp - 0x818]
mov dword [esp], str.Updating__s:
mov dword [esp + 4], eax
call fcn.0043efa9
mov eax, dword [0x513584]
mov eax, dword [eax + edi]
mov dword [esp], 0x49f10b
add eax, 2
mov dword [esp + 4], eax
call fcn.0043efa9
mov edx, dword [ebp - 0x9e8]
lea eax, [ebp - 0x9ec]
mov dword [ebp - 0xa0c], edx
mov dword [esp + 4], eax
mov eax, dword [0x513584]
mov eax, dword [eax + edi]
mov dword [esp], eax
call fcn.0043f190
mov edx, dword [ebp - 0xa0c]
test eax, eax
jne 0x421cc4
xor edx, edx
jmp 0x421d66
sub ebx, edx
lea edx, [ebp - 0x99c]
mov dword [esp + 8], eax
xor ecx, ecx
mov dword [esp + 0xc], edx
mov eax, dword [ebp - 0x9ec]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0041b94d
mov eax, dword [ebp - 0x9ec]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x9e8]
test ebx, ebx
jle 0x421d0a
cmp byte [eax + ebx - 1], 0xa
je 0x421d0a
dec ebx
jmp 0x421cfc
lea edi, [ebx + 0x21]
lea ecx, [ebp - 0x99c]
mov dword [ebp - 0xa0c], edi
lea eax, [ebx + 1]
mov dl, byte [ecx]
shr dl, 4
lea edi, [edx + 0x57]
cmp dl, 9
ja 0x421d2c
lea edi, [edx + 0x30]
mov edx, dword [ebp - 0x9e8]
mov ebx, edi
mov byte [edx + eax - 1], bl
mov dl, byte [ecx]
and edx, 0xf
lea edi, [edx + 0x57]
cmp dl, 9
ja 0x421d48
lea edi, [edx + 0x30]
mov edx, dword [ebp - 0x9e8]
mov ebx, edi
mov edi, dword [ebp - 0xa0c]
inc ecx
mov byte [edx + eax], bl
add eax, 2
cmp eax, edi
jne 0x421d1c
jmp 0x421cbd
inc esi
jmp 0x421c12
mov eax, dword [ebp - 0xa04]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
lea eax, [ebp - 0x818]
mov dword [esp], eax
call fcn.0043f27f
mov eax, dword [ebp - 0x9e8]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp], 0x513584
call fcn.0043d77d
mov eax, dword [0x525a60]
test eax, eax
je 0x421e08
mov dword [esp + 4], eax
mov dword [esp], str._Adding_files_from__s
call fcn.0043efa9
xor edx, edx
xor eax, eax
mov dword [esp], 0x40000
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0x41c7aa
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], edx
mov dword [esp + 8], edx
mov dword [esp + 4], edx
call fcn.0045564d
mov dword [esp + 8], 1
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [0x525a60]
mov dword [esp], eax
call fcn.00455416
call fcn.004556d3
mov eax, dword [ebp - 0x9fc]
mov dword [esp], eax
call fcn.004810fb
mov eax, dword [ebp - 0xa08]
mov dword [esp], eax
call fcn.004842a3
cmp dword [ebp - 0xa00], 0
je 0x421e49
cmp dword [0x4e2900], 0
jne 0x421e49
mov eax, dword [0x5135a8]
neg eax
sbb eax, eax
sub eax, 0x1ffcedf8
mov dword [0x4e2900], eax
xor eax, eax
cmp dword [ebp - 0xa00], 0
sete al
jmp 0x421e59
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret