Function at 0x509cf3
Capabilities:
Create directory
Delete file
Read .ini file

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x24b4
call fcn.0054cd40
mov dword [ebp - 0x24b4], 1
mov dword [ebp - 0x23a8], 0
mov dword [ebp - 0x1b0c], 1
mov eax, dword [0x5b2804]
mov dword [ebp - 0x23ac], eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x29010], 2
jne 0x509d4a
push str.Save_Info_Table_Tool
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x36f44]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 0
push 0x800
lea ecx, [ebp - 0xc04]
push ecx
push 0xf8
mov edx, dword [ebp + 8]
push edx
call fcn.00500476
add esp, 0x14
mov dword [ebp - 0x23a8], eax
push 0x200
push 0
lea eax, [ebp - 0x1a04]
push eax
call fcn.0054bfb0
add esp, 0xc
push 0
push 0x200
lea ecx, [ebp - 0x1a04]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0050060b
add esp, 0x10
mov dword [ebp - 0x23a8], eax
cmp dword [ebp - 0x23a8], 0
jne 0x509db8
mov dword [ebp - 0x24b4], 0
mov eax, dword [ebp + 8]
add eax, 0x27998
push eax
lea ecx, [ebp - 0x1a04]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004db12c
add esp, 0xc
mov dword [ebp - 0x23a8], eax
mov eax, dword [ebp + 8]
mov dword [eax + 0x27a18], 0
mov ecx, dword [ebp - 0x1904]
and ecx, 0xff
shl ecx, 8
mov edx, dword [ebp - 0x1903]
and edx, 0xff
and edx, 0xff
add ecx, edx
mov dword [ebp - 4], ecx
push 0x800
push 0
lea eax, [ebp - 0x1404]
push eax
call fcn.0054bfb0
add esp, 0xc
push 0x400
push 0
lea ecx, [ebp - 0x1804]
push ecx
call fcn.0054bfb0
add esp, 0xc
mov edx, dword [ebp - 0x1904]
and edx, 0xff
cmp edx, 0xff
je 0x50a237
mov eax, dword [ebp - 0x1903]
and eax, 0xff
cmp eax, 0xff
je 0x50a237
mov dword [ebp - 0x1fa4], 0
push 0x400
push 0
lea ecx, [ebp - 0x1804]
push ecx
call fcn.0054bfb0
add esp, 0xc
push 0x10
push 0
lea edx, [ebp - 0x1d1c]
push edx
call fcn.0054bfb0
add esp, 0xc
mov byte [ebp - 0x1d1c], 0xf0
mov byte [ebp - 0x1d1b], 1
mov al, byte [ebp - 0x1904]
mov byte [ebp - 0x1d1a], al
mov cl, byte [ebp - 0x1903]
mov byte [ebp - 0x1d19], cl
mov edx, dword [ebp - 0x1fa4]
sar edx, 8
mov byte [ebp - 0x1d18], dl
mov eax, dword [ebp - 0x1fa4]
and eax, 0xff
mov byte [ebp - 0x1d17], al
mov ecx, dword [ebp - 0x19f6]
and ecx, 0xff
and ecx, 0x20
neg ecx
sbb ecx, ecx
and ecx, 0x20
add ecx, 0x10
mov byte [ebp - 0x1d15], cl
mov byte [ebp - 0x1d13], 0x3e
mov byte [ebp - 0x1d11], 2
mov edx, dword [ebp - 0x1d11]
and edx, 0xff
shl edx, 9
push edx
lea eax, [ebp - 0x1804]
push eax
lea ecx, [ebp - 0x1d1c]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004da8ef
add esp, 0x10
mov dword [ebp - 0x23a8], eax
mov dword [ebp - 0x1da0], 1
jmp 0x509f58
mov eax, dword [ebp - 0x1da0]
add eax, 1
mov dword [ebp - 0x1da0], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x1da0]
cmp edx, dword [ecx + 0x279f0]
jge 0x50a06d
mov eax, dword [ebp - 0x1da0]
mov dword [ebp - 0x1fa4], eax
push 0x800
push 0
lea ecx, [ebp - 0x1404]
push ecx
call fcn.0054bfb0
add esp, 0xc
push 0x10
push 0
lea edx, [ebp - 0x1d1c]
push edx
call fcn.0054bfb0
add esp, 0xc
mov byte [ebp - 0x1d1c], 0xf0
mov byte [ebp - 0x1d1b], 1
mov al, byte [ebp - 0x1904]
mov byte [ebp - 0x1d1a], al
mov cl, byte [ebp - 0x1903]
mov byte [ebp - 0x1d19], cl
mov edx, dword [ebp - 0x1fa4]
sar edx, 8
mov byte [ebp - 0x1d18], dl
mov eax, dword [ebp - 0x1fa4]
and eax, 0xff
mov byte [ebp - 0x1d17], al
mov ecx, dword [ebp - 0x19f6]
and ecx, 0xff
and ecx, 0x20
neg ecx
sbb ecx, ecx
and ecx, 0x20
add ecx, 0x10
mov byte [ebp - 0x1d15], cl
mov byte [ebp - 0x1d13], 0x3e
mov byte [ebp - 0x1d11], 3
mov edx, dword [ebp - 0x1d11]
and edx, 0xff
shl edx, 9
push edx
lea eax, [ebp - 0x1404]
push eax
lea ecx, [ebp - 0x1d1c]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004da8ef
add esp, 0x10
mov dword [ebp - 0x23a8], eax
push 3
lea eax, [ebp - 0x23ac]
push eax
lea ecx, [ebp - 0x1002]
push ecx
call fcn.0054c730
add esp, 0xc
neg eax
sbb eax, eax
inc eax
test eax, eax
je 0x50a068
jmp 0x50a06d
jmp 0x509f49
mov dword [ebp - 0x1fa4], 0x20
push 0x400
push 0
lea edx, [ebp - 0x404]
push edx
call fcn.0054bfb0
add esp, 0xc
push 0x10
push 0
lea eax, [ebp - 0x1d1c]
push eax
call fcn.0054bfb0
add esp, 0xc
mov byte [ebp - 0x1d1c], 0xf0
mov byte [ebp - 0x1d1b], 1
mov cl, byte [ebp - 0x1904]
mov byte [ebp - 0x1d1a], cl
mov dl, byte [ebp - 0x1903]
mov byte [ebp - 0x1d19], dl
mov eax, dword [ebp - 0x1fa4]
sar eax, 8
mov byte [ebp - 0x1d18], al
mov ecx, dword [ebp - 0x1fa4]
and ecx, 0xff
mov byte [ebp - 0x1d17], cl
mov edx, dword [ebp - 0x19f6]
and edx, 0xff
and edx, 0x20
neg edx
sbb edx, edx
and edx, 0x20
add edx, 0x10
mov byte [ebp - 0x1d15], dl
mov byte [ebp - 0x1d13], 0x3e
mov byte [ebp - 0x1d11], 2
cmp dword [ebp - 0x1fa4], 0
je 0x50a14c
mov eax, dword [ebp - 0x1d11]
and eax, 0xff
shl eax, 9
push eax
lea ecx, [ebp - 0x404]
push ecx
lea edx, [ebp - 0x1d1c]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004da8ef
add esp, 0x10
mov dword [ebp - 0x23a8], eax
mov dword [ebp - 0x1fa4], 0x21
push 0x400
push 0
lea ecx, [ebp - 0x23a4]
push ecx
call fcn.0054bfb0
add esp, 0xc
push 0x10
push 0
lea edx, [ebp - 0x1d1c]
push edx
call fcn.0054bfb0
add esp, 0xc
mov byte [ebp - 0x1d1c], 0xf0
mov byte [ebp - 0x1d1b], 1
mov al, byte [ebp - 0x1904]
mov byte [ebp - 0x1d1a], al
mov cl, byte [ebp - 0x1903]
mov byte [ebp - 0x1d19], cl
mov edx, dword [ebp - 0x1fa4]
sar edx, 8
mov byte [ebp - 0x1d18], dl
mov eax, dword [ebp - 0x1fa4]
and eax, 0xff
mov byte [ebp - 0x1d17], al
mov ecx, dword [ebp - 0x19f6]
and ecx, 0xff
and ecx, 0x20
neg ecx
sbb ecx, ecx
and ecx, 0x20
add ecx, 0x10
mov byte [ebp - 0x1d15], cl
mov byte [ebp - 0x1d13], 0x3e
mov byte [ebp - 0x1d11], 2
cmp dword [ebp - 0x1fa4], 0
je 0x50a22b
mov edx, dword [ebp - 0x1d11]
and edx, 0xff
shl edx, 9
push edx
lea eax, [ebp - 0x23a4]
push eax
lea ecx, [ebp - 0x1d1c]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004da8ef
add esp, 0x10
mov dword [ebp - 0x23a8], eax
mov dword [ebp - 0x1b0c], 0
jmp 0x50a269
mov dword [ebp - 0x1b0c], 1
push 0x5b2820
lea eax, [ebp - 0x1404]
push eax
call fcn.0054bec0
add esp, 8
push str.No_Info
lea ecx, [ebp - 0x1804]
push ecx
call fcn.0054bec0
add esp, 8
push str.FlashTable
lea edx, [ebp - 0x1ea0]
push edx
call fcn.0054bec0
add esp, 8
lea eax, [ebp - 0x1d0c]
push eax
call fcn.0053534c
add esp, 4
push str.UFD_MPFlashSN_Table.ini
lea ecx, [ebp - 0x1d0c]
push ecx
call fcn.0054bed0
add esp, 8
lea edx, [ebp - 0x1b08]
push edx
call fcn.0053534c
add esp, 4
push 0x5b2858
lea eax, [ebp - 0x1fa0]
push eax
call fcn.0054bec0
add esp, 8
lea ecx, [ebp - 0x1fa0]
push ecx
lea edx, [ebp - 0x1b08]
push edx
call fcn.0054bed0
add esp, 8
push 0
lea eax, [ebp - 0x1b08]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0x80
push 0
lea ecx, [ebp - 0x1d9c]
push ecx
call fcn.0054bfb0
add esp, 0xc
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x194]
add eax, 1
push eax
push str.Flash_Port_.2d
lea ecx, [ebp - 0x1c0c]
push ecx
call fcn.0054c45b
add esp, 0xc
lea edx, [ebp - 0x1d0c]
push edx
push 0x80
lea eax, [ebp - 0x1d9c]
push eax
push 0
lea ecx, [ebp - 0x1c0c]
push ecx
lea edx, [ebp - 0x1ea0]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x1d9c]
push eax
call fcn.0054c3e0
add esp, 4
test eax, eax
je 0x50a378
lea ecx, [ebp - 0x1d9c]
push ecx
push str.BitTable__s.bin
lea edx, [ebp - 0x24b0]
push edx
call fcn.0054c45b
add esp, 0xc
jmp 0x50a399
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x194]
add ecx, 1
push ecx
push str.BitTable_.2d.bin
lea edx, [ebp - 0x24b0]
push edx
call fcn.0054c45b
add esp, 0xc
lea eax, [ebp - 0x24b0]
push eax
lea ecx, [ebp - 0x1b08]
push ecx
call fcn.0054bed0
add esp, 8
push 0x400
lea edx, [ebp - 0x1404]
push edx
lea eax, [ebp - 0x1b08]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0050a631
add esp, 0x10
cmp dword [ebp - 0x1b0c], 0
je 0x50a3e4
lea edx, [ebp - 0x1b08]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp - 0x1b08]
push eax
call fcn.0053534c
add esp, 4
lea ecx, [ebp - 0x1fa0]
push ecx
lea edx, [ebp - 0x1b08]
push edx
call fcn.0054bed0
add esp, 8
lea eax, [ebp - 0x1d9c]
push eax
call fcn.0054c3e0
add esp, 4
test eax, eax
je 0x50a439
lea ecx, [ebp - 0x1d9c]
push ecx
push str.Info__s.bin
lea edx, [ebp - 0x24b0]
push edx
call fcn.0054c45b
add esp, 0xc
jmp 0x50a45a
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x194]
add ecx, 1
push ecx
push str.Info_.2d.bin
lea edx, [ebp - 0x24b0]
push edx
call fcn.0054c45b
add esp, 0xc
lea eax, [ebp - 0x24b0]
push eax
lea ecx, [ebp - 0x1b08]
push ecx
call fcn.0054bed0
add esp, 8
push 0x400
lea edx, [ebp - 0x1804]
push edx
lea eax, [ebp - 0x1b08]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0050a631
add esp, 0x10
cmp dword [ebp - 0x1b0c], 0
je 0x50a4a5
lea edx, [ebp - 0x1b08]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp - 0x1b08]
push eax
call fcn.0053534c
add esp, 4
lea ecx, [ebp - 0x1fa0]
push ecx
lea edx, [ebp - 0x1b08]
push edx
call fcn.0054bed0
add esp, 8
lea eax, [ebp - 0x1d9c]
push eax
call fcn.0054c3e0
add esp, 4
test eax, eax
je 0x50a4fa
lea ecx, [ebp - 0x1d9c]
push ecx
push str.BitTableTLC__s.bin
lea edx, [ebp - 0x24b0]
push edx
call fcn.0054c45b
add esp, 0xc
jmp 0x50a51b
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x194]
add ecx, 1
push ecx
push str.BitTableTLC_.2d.bin
lea edx, [ebp - 0x24b0]
push edx
call fcn.0054c45b
add esp, 0xc
lea eax, [ebp - 0x24b0]
push eax
lea ecx, [ebp - 0x1b08]
push ecx
call fcn.0054bed0
add esp, 8
push 0x400
lea edx, [ebp - 0x404]
push edx
lea eax, [ebp - 0x1b08]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0050a631
add esp, 0x10
cmp dword [ebp - 0x1b0c], 0
je 0x50a566
lea edx, [ebp - 0x1b08]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp - 0x1b08]
push eax
call fcn.0053534c
add esp, 4
lea ecx, [ebp - 0x1fa0]
push ecx
lea edx, [ebp - 0x1b08]
push edx
call fcn.0054bed0
add esp, 8
lea eax, [ebp - 0x1d9c]
push eax
call fcn.0054c3e0
add esp, 4
test eax, eax
je 0x50a5bb
lea ecx, [ebp - 0x1d9c]
push ecx
push str.BitTableSLC__s.bin
lea edx, [ebp - 0x24b0]
push edx
call fcn.0054c45b
add esp, 0xc
jmp 0x50a5dc
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x194]
add ecx, 1
push ecx
push str.BitTableSLC_.2d.bin
lea edx, [ebp - 0x24b0]
push edx
call fcn.0054c45b
add esp, 0xc
lea eax, [ebp - 0x24b0]
push eax
lea ecx, [ebp - 0x1b08]
push ecx
call fcn.0054bed0
add esp, 8
push 0x400
lea edx, [ebp - 0x23a4]
push edx
lea eax, [ebp - 0x1b08]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0050a631
add esp, 0x10
cmp dword [ebp - 0x1b0c], 0
je 0x50a627
lea edx, [ebp - 0x1b08]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [ebp - 0x24b4]
mov esp, ebp
pop ebp
ret