Function at 0x46eb18
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov dword [ebp - 0x20], ecx
mov eax, dword [0x5428ac]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
call fcn.0041ba7a
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x46eb5b
cmp dword [ebp - 0x10], 1
jne 0x46eb54
push 0
push 0x536be8
push str.Cant_find_file_path_at__Load_Config_from__edit_item__please_check.
mov ecx, dword [ebp - 0x20]
call fcn.004e07ce
xor eax, eax
jmp 0x46f318
mov ecx, dword [ebp - 0x1c]
call fcn.0041bd78
mov ecx, dword [ebp - 0x20]
call fcn.0049bbb6
mov ecx, dword [ebp - 0x20]
add ecx, 0x8ec
push ecx
push 0x258
push str.TIMEOUT
push 0x536c3c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x20]
mov dword [edx + 0xffc], eax
mov eax, dword [ebp - 0x20]
add eax, 0x8ec
push eax
push 0
push str.FLASH_MANAGEMENT
push 0x536c58
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1014], eax
mov edx, dword [ebp - 0x20]
add edx, 0x1018
push edx
mov ecx, dword [ebp - 0x1c]
call fcn.0041d7c2
mov eax, dword [ebp - 0x20]
add eax, 0x8ec
push eax
push 1
push str.PRETEST
push 0x536c68
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x101c], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.PRETEST_OPTION
push 0x536c80
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov byte [ecx + 0x1020], al
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.CHECKRDTRST
push 0x536c94
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1140], eax
mov edx, dword [ebp - 0x20]
add edx, 0x1144
push edx
mov ecx, dword [ebp - 0x1c]
call fcn.0041d855
mov eax, dword [ebp - 0x20]
add eax, 0x8ec
push eax
push 0
push 0x536c9c
push 0x536cac
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1028], eax
cmp dword [0x543008], 0
jne 0x46ec83
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x1028], 0
mov eax, dword [ebp - 0x20]
add eax, 0x8ec
push eax
push 0
push str.DisableTranADJ
push 0x536cc4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1024], eax
cmp dword [0x5430bc], 0
jne 0x46ecbd
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x1024], 0
mov eax, dword [ebp - 0x20]
add eax, 0x8ec
push eax
push 0
push str.ENBADBLOCKCNTTH
push 0x536cdc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1150], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0x96
push str.BADBLOCKCNTTH
push 0x536cf4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1154], eax
cmp dword [0x54308c], 0
je 0x46ed3f
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.CARDMODESEL
push 0x536d08
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov byte [ecx + 0x102c], al
mov ecx, dword [ebp - 0x20]
call fcn.0046f31c
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.ENMAXRDTECCTH
push 0x536d20
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1158], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0x41
push str.MAXRDTECCTH
push 0x536d34
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x115c], eax
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 0x115c]
add eax, 1
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x115c], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 1
push 0x536d3c
push 0x536d48
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1160], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push 0x536d50
push 0x536d58
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1164], eax
mov edx, dword [ebp - 0x20]
add edx, 0x1169
push edx
mov ecx, dword [ebp - 0x1c]
call fcn.0041d9b4
mov eax, dword [ebp - 0x20]
add eax, 0x8ec
push eax
push 2
push str.RDTGRADINGLEVEL
push 0x536d70
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov byte [ecx + 0x1168], al
cmp dword [0x5430d4], 0
jne 0x46ee31
mov edx, dword [ebp - 0x20]
mov byte [edx + 0x1168], 2
cmp dword [0x543064], 2
jne 0x46ef3f
mov eax, dword [ebp - 0x20]
add eax, 0x11e4
push eax
mov ecx, dword [ebp - 0x1c]
call fcn.0041dfc2
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x11e4], 0
je 0x46eec6
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 0x11e4]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + 0x11e8]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], 1
jmp 0x46ee85
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x14]
jge 0x46eec6
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [eax + edx*4 + 0x11e8]
jl 0x46eeb4
push 0
push 0
push str.Physical_Bad_block_counts_selection_are_not_getting_bigger__please_check.
call fcn.004ea4a1
xor eax, eax
jmp 0x46f318
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + edx*4 + 0x11e8]
mov dword [ebp - 0xc], ecx
jmp 0x46ee7c
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0x11f8], 0
je 0x46ef3d
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x11f8]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 0x11fc]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], 1
jmp 0x46eefc
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x14]
jge 0x46ef3d
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0xc]
cmp edx, dword [ecx + eax*4 + 0x11fc]
jl 0x46ef2b
push 0
push 0
push str.Super_Bad_block_counts_selection_are_not_getting_bigger__please_check.
call fcn.004ea4a1
xor eax, eax
jmp 0x46f318
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + eax*4 + 0x11fc]
mov dword [ebp - 0xc], edx
jmp 0x46eef3
jmp 0x46efbe
cmp dword [0x543064], 1
jne 0x46efbe
mov eax, dword [ebp - 0x20]
add eax, 0x11c0
push eax
mov ecx, dword [ebp - 0x1c]
call fcn.0041df2a
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + 0x11c4]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], 1
jmp 0x46ef77
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x18]
cmp edx, dword [ecx + 0x11c0]
jge 0x46efbe
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0xc]
cmp edx, dword [ecx + eax*4 + 0x11c4]
jl 0x46efac
push 0
push 0
push str.Bad_block_counts_selection_are_not_getting_bigger__please_check.
call fcn.004ea4a1
xor eax, eax
jmp 0x46f318
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + eax*4 + 0x11c4]
mov dword [ebp - 0xc], edx
jmp 0x46ef6e
mov eax, dword [ebp - 0x20]
add eax, 0x119d
push eax
mov ecx, dword [ebp - 0x1c]
call fcn.004322a8
mov ecx, dword [ebp - 0x20]
add ecx, 0x8ec
push ecx
push 0
push str.COPYCOMPARE
push 0x536e5c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x1228], eax
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x122c], 1
mov ecx, dword [ebp - 0x20]
add ecx, 0x1230
push ecx
mov ecx, dword [ebp - 0x1c]
call fcn.0041e837
mov ecx, dword [ebp - 0x20]
call fcn.004702e0
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.QCPROCEDURE
push 0x536e70
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1314], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.PRELOADIMANG
push 0x536e88
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1318], eax
cmp dword [0x54312c], 0
jne 0x46f07b
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x1318], 0
cmp dword [0x54303c], 2
jne 0x46f0b4
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x2ed0]
xor edx, edx
mov ecx, 2
div ecx
test edx, edx
jne 0x46f0b4
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x1164], 0
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x1314], 1
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x1740], 0
je 0x46f0e7
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x101c], 0
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x1140], 1
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1160], 0
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.ENFLASHIODRV
push 0x536ea0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1210], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.ENDRIVINGSTRENGTH
push 0x536eb8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1214], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.ENCTRLODT
push 0x536ec8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1218], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.ENFLASHODT
push 0x536ed8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x121c], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.ENSCHMITTWINDOW
push 0x536eec
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1220], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.EnGcStepManual
push 0x536f00
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1224], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.ENWWN16
push 0x536f0c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x131c], eax
cmp dword [0x543130], 0
je 0x46f218
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.WWN16
push 0x536f20
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x131c], eax
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0x131c], 0
je 0x46f237
mov ecx, dword [ebp - 0x1c]
call fcn.00431974
test eax, eax
jne 0x46f237
xor eax, eax
jmp 0x46f318
push 0x29
push 0
mov eax, dword [ebp - 0x20]
add eax, 0x1320
push eax
call fcn.004be790
add esp, 0xc
mov ecx, dword [ebp - 0x20]
add ecx, 0x8ec
push ecx
push 0x29
mov edx, dword [ebp - 0x20]
add edx, 0x1320
push edx
push str.SSD_DISK
push str.MODELSTRING
push 0x536f3c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 8
push 0
mov eax, dword [ebp - 0x20]
add eax, 0x1349
push eax
call fcn.004be790
add esp, 0xc
mov ecx, dword [ebp - 0x20]
add ecx, 0x8ec
push ecx
push 8
mov edx, dword [ebp - 0x20]
add edx, 0x1349
push edx
push 0
push str.FIRMWAREVERSION
push 0x536f58
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 7
push 0
lea eax, [ebp - 8]
push eax
call fcn.004be790
add esp, 0xc
mov ecx, dword [ebp - 0x20]
add ecx, 0x8ec
push ecx
push 7
lea edx, [ebp - 8]
push edx
push 0
push 0x536f64
push 0x536f6c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
movsx eax, byte [ebp - 8]
test eax, eax
je 0x46f301
push 7
lea ecx, [ebp - 8]
push ecx
push 0x5433a8
call fcn.004bee30
add esp, 0xc
push 0
mov ecx, dword [ebp - 0x1c]
call fcn.0042b54a
test eax, eax
jne 0x46f313
xor eax, eax
jmp 0x46f318
mov eax, 1
mov esp, ebp
pop ebp
ret