Function at 0x43c03a
Capabilities:
Check if file exists
Create directory
Create process on windows
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x572883
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf34
mov dword [ebp - 0xf3c], ecx
lea ecx, [ebp - 0xa84]
call fcn.00566717
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x624]
call fcn.00566717
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xf34]
call fcn.00566717
mov byte [ebp - 4], 2
mov byte [ebp - 0x96c], 4
mov byte [ebp - 0x848], 0x30
mov byte [ebp - 0xf38], 0
mov dword [ebp - 0x628], 1
mov dword [ebp - 0x73c], 1
mov dword [ebp - 0x860], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x844], 0x14
mov ecx, dword [ebp - 0xf3c]
call fcn.00426df4
mov ecx, dword [ebp - 0xf3c]
mov dword [ecx + 0x60], eax
mov edx, dword [ebp - 0xf3c]
cmp dword [edx + 0x60], 0
jne 0x43c127
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xf34]
call fcn.0056676c
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x624]
call fcn.0056676c
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa84]
call fcn.0056676c
jmp 0x43ca7f
push 0x104
lea eax, [ebp - 0x840]
push eax
push 0x3f2
mov ecx, dword [ebp - 0xf3c]
call fcn.005654d4
mov ecx, eax
call fcn.005656a4
lea ecx, [ebp - 0x840]
push ecx
call fcn.00529529
add esp, 4
and eax, 0x4e
mov byte [ebp - 0xf38], al
push 0x46d
mov ecx, dword [ebp - 0xf3c]
call fcn.005654d4
mov dword [ebp - 0x84c], eax
push 0x600
lea edx, [ebp - 0x614]
push edx
push 0x65b
mov ecx, dword [ebp - 0xf3c]
call fcn.005654d4
mov ecx, eax
call fcn.005656a4
lea eax, [ebp - 0x614]
push eax
call fcn.00529529
add esp, 4
mov dword [ebp - 0x738], eax
push 0x600
lea ecx, [ebp - 0x614]
push ecx
push 0x65c
mov ecx, dword [ebp - 0xf3c]
call fcn.005654d4
mov ecx, eax
call fcn.005656a4
lea edx, [ebp - 0x614]
push edx
call fcn.00529529
add esp, 4
mov dword [ebp - 0xa74], eax
push 0x600
push 0
lea eax, [ebp - 0x614]
push eax
call fcn.0054bf90
add esp, 0xc
push 0
push 0x200
lea ecx, [ebp - 0x614]
push ecx
mov edx, dword [ebp - 0xf3c]
mov eax, dword [edx + 0x6c]
push eax
mov ecx, dword [ebp - 0xf3c]
mov edx, dword [ecx + 0x78]
push edx
mov eax, dword [ebp - 0xf3c]
mov ecx, dword [eax + 0x74]
push ecx
mov edx, dword [ebp - 0xf3c]
mov eax, dword [edx + 0x5c]
push eax
call fcn.0051a525
add esp, 0x1c
lea ecx, [ebp - 0xf24]
push ecx
lea edx, [ebp - 0x614]
push edx
call fcn.0051d0f3
add esp, 8
mov eax, dword [ebp - 0x606]
and eax, 0xff
and eax, 0x20
neg eax
sbb eax, eax
and eax, 0x20
add eax, 0x10
mov byte [ebp - 0x848], al
mov ecx, dword [ebp - 0xe9d]
and ecx, 0xff
test ecx, ecx
je 0x43c2b5
mov edx, dword [ebp - 0xe9b]
and edx, 0xff
test edx, edx
je 0x43c29c
mov dword [ebp - 0x628], 4
jmp 0x43c2b5
mov eax, dword [ebp - 0xe9c]
and eax, 0xff
test eax, eax
je 0x43c2b5
mov dword [ebp - 0x628], 2
mov ecx, dword [ebp - 0xe9e]
and ecx, 0xff
test ecx, ecx
je 0x43c2cf
mov dword [ebp - 0x73c], 2
cmp dword [ebp + 0xc], 0
jne 0x43c3ad
lea edx, [ebp - 0x734]
push edx
call fcn.00529440
add esp, 4
push str.UFD_MPECCBlkFile.txt
lea eax, [ebp - 0x734]
push eax
call fcn.0054bea0
add esp, 8
push 0
push 0x1041
lea ecx, [ebp - 0x734]
push ecx
lea ecx, [ebp - 0xa84]
call fcn.00566829
test eax, eax
jne 0x43c372
mov ecx, dword [ebp - 0xf3c]
call fcn.00427253
push 0
lea edx, [ebp - 0x734]
push edx
push 0x5a0ea8
mov ecx, dword [ebp - 0xf3c]
call fcn.00564245
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xf34]
call fcn.0056676c
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x624]
call fcn.0056676c
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa84]
call fcn.0056676c
jmp 0x43ca7f
push str.SM3255AB_Search_Block__.3X__Block__.3X_ECC_Sector_s__r_n
lea eax, [ebp - 0x840]
push eax
call fcn.0054c6e3
add esp, 8
lea ecx, [ebp - 0x840]
push ecx
call fcn.0054ce70
add esp, 4
push eax
lea edx, [ebp - 0x840]
push edx
lea ecx, [ebp - 0xa84]
call fcn.00566980
jmp 0x43c5e5
lea eax, [ebp - 0x840]
push eax
call fcn.00529440
add esp, 4
push str.UFD_MPECCFile
lea ecx, [ebp - 0x840]
push ecx
call fcn.0054bea0
add esp, 8
lea edx, [ebp - 0x840]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x43c3f1
push 0
lea eax, [ebp - 0x840]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea ecx, [ebp - 0xa70]
push ecx
call fcn.00529440
add esp, 4
mov edx, dword [ebp - 0x738]
push edx
push str.UFD_MPECCFileBlock__04X_ECCCorrectFile.txt
lea eax, [ebp - 0x840]
push eax
call fcn.0054c6e3
add esp, 0xc
lea ecx, [ebp - 0x840]
push ecx
lea edx, [ebp - 0xa70]
push edx
call fcn.0054bea0
add esp, 8
lea eax, [ebp - 0x964]
push eax
call fcn.00529440
add esp, 4
mov ecx, dword [ebp - 0x738]
push ecx
push str.UFD_MPECCFileBlock__04X_ECC_Un_CorrectFile.txt
lea edx, [ebp - 0x840]
push edx
call fcn.0054c6e3
add esp, 0xc
lea eax, [ebp - 0x840]
push eax
lea ecx, [ebp - 0x964]
push ecx
call fcn.0054bea0
add esp, 8
push 0
push 0x1041
lea edx, [ebp - 0xa70]
push edx
lea ecx, [ebp - 0x624]
call fcn.00566829
test eax, eax
jne 0x43c4e7
mov ecx, dword [ebp - 0xf3c]
call fcn.00427253
push 0
lea eax, [ebp - 0x734]
push eax
push 0x5a0f78
mov ecx, dword [ebp - 0xf3c]
call fcn.00564245
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xf34]
call fcn.0056676c
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x624]
call fcn.0056676c
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa84]
call fcn.0056676c
jmp 0x43ca7f
mov ecx, dword [ebp - 0xa74]
push ecx
mov edx, dword [ebp - 0x738]
push edx
push str.SM3255AB_Search_Correctable_Block__.3X__Block__.3X_ECC_Sector_s__r_n
lea eax, [ebp - 0x840]
push eax
call fcn.0054c6e3
add esp, 0x10
lea ecx, [ebp - 0x840]
push ecx
call fcn.0054ce70
add esp, 4
push eax
lea edx, [ebp - 0x840]
push edx
lea ecx, [ebp - 0x624]
call fcn.00566980
push 0
push 0x1041
lea eax, [ebp - 0x964]
push eax
lea ecx, [ebp - 0xf34]
call fcn.00566829
test eax, eax
jne 0x43c5a1
mov ecx, dword [ebp - 0xf3c]
call fcn.00427253
push 0
lea ecx, [ebp - 0x734]
push ecx
push 0x5a0fe0
mov ecx, dword [ebp - 0xf3c]
call fcn.00564245
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xf34]
call fcn.0056676c
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x624]
call fcn.0056676c
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa84]
call fcn.0056676c
jmp 0x43ca7f
mov edx, dword [ebp - 0xa74]
push edx
mov eax, dword [ebp - 0x738]
push eax
push str.SM3255AB_Search_Un_Correctable_Block__.3X__Block__.3X_ECC_Sector_s__r_n
lea ecx, [ebp - 0x840]
push ecx
call fcn.0054c6e3
add esp, 0x10
lea edx, [ebp - 0x840]
push edx
call fcn.0054ce70
add esp, 4
push eax
lea eax, [ebp - 0x840]
push eax
lea ecx, [ebp - 0xf34]
call fcn.00566980
push 0x65d
mov ecx, dword [ebp - 0xf3c]
call fcn.005654d4
mov ecx, eax
call fcn.00404920
test eax, eax
je 0x43c60f
mov cl, byte [ebp - 0x96c]
or cl, 8
mov byte [ebp - 0x96c], cl
mov edx, dword [ebp - 0xa74]
sub edx, dword [ebp - 0x738]
add edx, 1
imul edx, dword [ebp - 0xe94]
push edx
push 0
mov ecx, dword [ebp - 0x84c]
call fcn.00411940
push 0
mov ecx, dword [ebp - 0x84c]
call fcn.00411a50
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x738]
mov dword [ebp - 0x860], eax
jmp 0x43c664
mov ecx, dword [ebp - 0x860]
add ecx, 1
mov dword [ebp - 0x860], ecx
mov edx, dword [ebp - 0x860]
cmp edx, dword [ebp - 0xa74]
jg 0x43c982
mov dword [ebp - 0x14], 0
jmp 0x43c688
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0xe94]
jge 0x43c97d
mov dword [ebp - 0x62c], 0
jmp 0x43c6b2
mov edx, dword [ebp - 0x62c]
add edx, 1
mov dword [ebp - 0x62c], edx
mov eax, dword [ebp - 0xec0]
cdq
sub eax, edx
sar eax, 1
cmp dword [ebp - 0x62c], eax
jge 0x43c978
mov dword [ebp - 0x630], 0
jmp 0x43c6e4
mov eax, dword [ebp - 0x630]
add eax, 1
mov dword [ebp - 0x630], eax
mov ecx, dword [ebp - 0x630]
cmp ecx, dword [ebp - 0x73c]
jge 0x43c94c
mov dword [ebp - 0x968], 0
jmp 0x43c711
mov edx, dword [ebp - 0x968]
add edx, 1
mov dword [ebp - 0x968], edx
mov eax, dword [ebp - 0x968]
cmp eax, dword [ebp - 0x628]
jge 0x43c947
push 0x10
push 0
lea ecx, [ebp - 0x85c]
push ecx
call fcn.0054bf90
add esp, 0xc
mov byte [ebp - 0x85c], 0xf0
mov byte [ebp - 0x85b], 1
mov edx, dword [ebp - 0x860]
sar edx, 8
mov byte [ebp - 0x85a], dl
mov eax, dword [ebp - 0x860]
and eax, 0xff
mov byte [ebp - 0x859], al
mov ecx, dword [ebp - 0x14]
sar ecx, 8
mov byte [ebp - 0x858], cl
mov edx, dword [ebp - 0x14]
and edx, 0xff
mov byte [ebp - 0x857], dl
mov al, byte [ebp - 0x62c]
mov byte [ebp - 0x856], al
mov ecx, dword [ebp - 0x848]
and ecx, 0xff
or ecx, dword [ebp - 0x968]
mov byte [ebp - 0x855], cl
mov edx, dword [ebp - 0xf38]
and edx, 0xff
or edx, 0x32
mov eax, dword [ebp - 0x630]
neg eax
sbb eax, eax
and eax, 0x80
or edx, eax
mov byte [ebp - 0x853], dl
mov byte [ebp - 0x851], 3
push 0
lea ecx, [ebp - 0x85c]
push ecx
mov edx, dword [ebp - 0x851]
and edx, 0xff
shl edx, 9
push edx
lea eax, [ebp - 0x614]
push eax
mov ecx, dword [ebp - 0xf3c]
mov edx, dword [ecx + 0x6c]
push edx
push 0
push 0
push 0
mov eax, dword [ebp - 0xf3c]
mov ecx, dword [eax + 0x78]
push ecx
mov edx, dword [ebp - 0xf3c]
mov eax, dword [edx + 0x74]
push eax
mov ecx, dword [ebp - 0xf3c]
mov edx, dword [ecx + 0x5c]
push edx
call fcn.004c0e6e
add esp, 0x2c
mov ecx, dword [ebp - 0xf3c]
mov dword [ecx + 0x60], eax
mov edx, dword [ebp - 0x204]
and edx, 0xff
mov eax, dword [ebp - 0x96c]
and eax, 0xff
and edx, eax
test edx, edx
je 0x43c942
mov ecx, dword [ebp - 0x204]
and ecx, 0xff
and ecx, 4
test ecx, ecx
je 0x43c86f
mov dword [ebp - 0xf40], 0x5a104c
jmp 0x43c879
mov dword [ebp - 0xf40], 0x5a105c
mov edx, dword [ebp - 0xf40]
push edx
mov eax, dword [ebp - 0x630]
push eax
mov ecx, dword [ebp - 0x968]
push ecx
mov edx, dword [ebp - 0x62c]
push edx
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x860]
push ecx
push str.Blk__.5X__Page__.3X__SectorIdx__X__nCE__.2X__PlaneBit__X___s_r_n
lea edx, [ebp - 0x840]
push edx
call fcn.0054c6e3
add esp, 0x20
cmp dword [ebp + 0xc], 0
jne 0x43c8de
lea eax, [ebp - 0x840]
push eax
call fcn.0054ce70
add esp, 4
push eax
lea ecx, [ebp - 0x840]
push ecx
lea ecx, [ebp - 0xa84]
call fcn.00566980
jmp 0x43c942
mov edx, dword [ebp - 0x204]
and edx, 0xff
and edx, 4
test edx, edx
je 0x43c915
lea eax, [ebp - 0x840]
push eax
call fcn.0054ce70
add esp, 4
push eax
lea ecx, [ebp - 0x840]
push ecx
lea ecx, [ebp - 0xf34]
call fcn.00566980
jmp 0x43c942
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x844]
jge 0x43c942
lea eax, [ebp - 0x840]
push eax
call fcn.0054ce70
add esp, 4
push eax
lea ecx, [ebp - 0x840]
push ecx
lea ecx, [ebp - 0x624]
call fcn.00566980
jmp 0x43c702
jmp 0x43c6d5
mov edx, dword [ebp - 0x860]
sub edx, dword [ebp - 0x738]
imul edx, dword [ebp - 0xe94]
add edx, dword [ebp - 0x14]
push edx
mov ecx, dword [ebp - 0x84c]
call fcn.00411a50
call fcn.004ff6d8
jmp 0x43c6a3
jmp 0x43c67f
jmp 0x43c655
mov ecx, dword [ebp - 0xf3c]
call fcn.00427253
cmp dword [ebp + 0xc], 0
jne 0x43c9b6
push 4
push 0x5e00b8
push 0x5a10a8
mov ecx, dword [ebp - 0xf3c]
call fcn.00564245
cmp eax, 6
jne 0x43c9b6
mov dword [ebp + 8], 1
cmp dword [ebp + 0xc], 0
jne 0x43c9ff
lea ecx, [ebp - 0xa84]
call fcn.00566a44
push 4
push 0x5e00bc
push 0x5a10cc
mov ecx, dword [ebp - 0xf3c]
call fcn.00564245
cmp eax, 6
jne 0x43c9fd
push 1
push 0
push 0
lea eax, [ebp - 0x734]
push eax
push 0x5a10f0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
jmp 0x43ca4f
lea ecx, [ebp - 0x624]
call fcn.00566a44
lea ecx, [ebp - 0xf34]
call fcn.00566a44
cmp dword [ebp + 8], 0
je 0x43ca4f
push 1
push 0
push 0
lea ecx, [ebp - 0xa70]
push ecx
push 0x5a10f8
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push 1
push 0
push 0
lea edx, [ebp - 0x964]
push edx
push 0x5a1100
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xf34]
call fcn.0056676c
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x624]
call fcn.0056676c
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa84]
call fcn.0056676c
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8