Function at 0x46bfc8
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov dword [ebp - 0x20], ecx
mov eax, dword [0x53b73c]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
call fcn.0041b10a
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x46c00b
cmp dword [ebp - 0x10], 1
jne 0x46c004
push 0
push 0x530058
push str.Cant_find_file_path_at__Load_Config_from__edit_item__please_check.
mov ecx, dword [ebp - 0x20]
call fcn.004db06e
xor eax, eax
jmp 0x46c792
mov ecx, dword [ebp - 0x1c]
call fcn.0041b408
mov ecx, dword [ebp - 0x20]
call fcn.00495d25
mov ecx, dword [ebp - 0x20]
add ecx, 0x8ec
push ecx
push 0x258
push str.TIMEOUT
push 0x5300ac
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 0x5300c8
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.0041cd5d
mov eax, dword [ebp - 0x20]
add eax, 0x8ec
push eax
push 1
push str.PRETEST
push 0x5300d8
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 0x5300f0
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 0x530104
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x102c], eax
mov edx, dword [ebp - 0x20]
add edx, 0x1030
push edx
mov ecx, dword [ebp - 0x1c]
call fcn.0041cdf0
mov eax, dword [ebp - 0x20]
add eax, 0x8ec
push eax
push 0
push 0x53010c
push 0x53011c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1028], eax
cmp dword [0x53be98], 0
jne 0x46c133
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 0x530134
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1024], eax
cmp dword [0x53bf38], 0
jne 0x46c16d
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 0x53014c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x103c], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0x96
push str.BADBLOCKCNTTH
push 0x530164
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1040], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.ENMAXRDTECCTH
push 0x53017c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1044], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0x41
push str.MAXRDTECCTH
push 0x530190
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1048], eax
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 0x1048]
add eax, 1
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1048], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 1
push 0x530198
push 0x5301a4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x104c], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push 0x5301ac
push 0x5301b4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1050], eax
mov edx, dword [ebp - 0x20]
add edx, 0x1055
push edx
mov ecx, dword [ebp - 0x1c]
call fcn.0041cf4f
mov eax, dword [ebp - 0x20]
add eax, 0x8ec
push eax
push 2
push str.RDTGRADINGLEVEL
push 0x5301cc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov byte [ecx + 0x1054], al
cmp dword [0x53bf4c], 0
jne 0x46c2ab
mov edx, dword [ebp - 0x20]
mov byte [edx + 0x1054], 2
cmp dword [0x53bee4], 2
jne 0x46c3b9
mov eax, dword [ebp - 0x20]
add eax, 0x10c8
push eax
mov ecx, dword [ebp - 0x1c]
call fcn.0041d4fb
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x10c8], 0
je 0x46c340
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 0x10c8]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + 0x10cc]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], 1
jmp 0x46c2ff
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x14]
jge 0x46c340
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [eax + edx*4 + 0x10cc]
jl 0x46c32e
push 0
push 0
push str.Physical_Bad_block_counts_selection_are_not_getting_bigger__please_check.
call fcn.004e4d41
xor eax, eax
jmp 0x46c792
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + edx*4 + 0x10cc]
mov dword [ebp - 0xc], ecx
jmp 0x46c2f6
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0x10dc], 0
je 0x46c3b7
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x10dc]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 0x10e0]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], 1
jmp 0x46c376
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x14]
jge 0x46c3b7
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0xc]
cmp edx, dword [ecx + eax*4 + 0x10e0]
jl 0x46c3a5
push 0
push 0
push str.Super_Bad_block_counts_selection_are_not_getting_bigger__please_check.
call fcn.004e4d41
xor eax, eax
jmp 0x46c792
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + eax*4 + 0x10e0]
mov dword [ebp - 0xc], edx
jmp 0x46c36d
jmp 0x46c438
cmp dword [0x53bee4], 1
jne 0x46c438
mov eax, dword [ebp - 0x20]
add eax, 0x10a4
push eax
mov ecx, dword [ebp - 0x1c]
call fcn.0041d463
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + 0x10a8]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], 1
jmp 0x46c3f1
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 + 0x10a4]
jge 0x46c438
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0xc]
cmp edx, dword [ecx + eax*4 + 0x10a8]
jl 0x46c426
push 0
push 0
push str.Bad_block_counts_selection_are_not_getting_bigger__please_check.
call fcn.004e4d41
xor eax, eax
jmp 0x46c792
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + eax*4 + 0x10a8]
mov dword [ebp - 0xc], edx
jmp 0x46c3e8
mov eax, dword [ebp - 0x20]
add eax, 0x1083
push eax
mov ecx, dword [ebp - 0x1c]
call fcn.004308c5
mov ecx, dword [ebp - 0x20]
add ecx, 0x8ec
push ecx
push 0
push str.COPYCOMPARE
push 0x5302b8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x110c], eax
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x1110], 1
mov ecx, dword [ebp - 0x20]
add ecx, 0x1114
push ecx
mov ecx, dword [ebp - 0x1c]
call fcn.0041dd17
mov ecx, dword [ebp - 0x20]
call fcn.0046d436
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.QCPROCEDURE
push 0x5302cc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x11f8], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.PRELOADIMANG
push 0x5302e4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x11fc], eax
cmp dword [0x53bf9c], 0
jne 0x46c4f5
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x11fc], 0
cmp dword [0x53bec8], 2
jne 0x46c52e
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x2db4]
xor edx, edx
mov ecx, 2
div ecx
test edx, edx
jne 0x46c52e
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x1050], 0
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x11f8], 1
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x1624], 0
je 0x46c561
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x101c], 0
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x102c], 1
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x104c], 0
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.ENFLASHIODRV
push 0x5302fc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x10f4], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.ENDRIVINGSTRENGTH
push 0x530314
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x10f8], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.ENCTRLODT
push 0x530324
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x10fc], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.ENFLASHODT
push 0x530334
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1100], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.ENSCHMITTWINDOW
push 0x530348
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1104], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.EnGcStepManual
push 0x53035c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1108], eax
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.ENWWN16
push 0x530368
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1200], eax
cmp dword [0x53bfa0], 0
je 0x46c692
mov edx, dword [ebp - 0x20]
add edx, 0x8ec
push edx
push 0
push str.WWN16
push 0x53037c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1200], eax
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0x1200], 0
je 0x46c6b1
mov ecx, dword [ebp - 0x1c]
call fcn.0043005e
test eax, eax
jne 0x46c6b1
xor eax, eax
jmp 0x46c792
push 0x29
push 0
mov eax, dword [ebp - 0x20]
add eax, 0x1204
push eax
call fcn.004b9030
add esp, 0xc
mov ecx, dword [ebp - 0x20]
add ecx, 0x8ec
push ecx
push 0x29
mov edx, dword [ebp - 0x20]
add edx, 0x1204
push edx
push str.SSD_DISK
push str.MODELSTRING
push 0x530398
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 8
push 0
mov eax, dword [ebp - 0x20]
add eax, 0x122d
push eax
call fcn.004b9030
add esp, 0xc
mov ecx, dword [ebp - 0x20]
add ecx, 0x8ec
push ecx
push 8
mov edx, dword [ebp - 0x20]
add edx, 0x122d
push edx
push 0
push str.FIRMWAREVERSION
push 0x5303b4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 7
push 0
lea eax, [ebp - 8]
push eax
call fcn.004b9030
add esp, 0xc
mov ecx, dword [ebp - 0x20]
add ecx, 0x8ec
push ecx
push 7
lea edx, [ebp - 8]
push edx
push 0
push 0x5303c0
push 0x5303c8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
movsx eax, byte [ebp - 8]
test eax, eax
je 0x46c77b
push 7
lea ecx, [ebp - 8]
push ecx
push 0x53c218
call fcn.004b96d0
add esp, 0xc
push 0
mov ecx, dword [ebp - 0x1c]
call fcn.0042a001
test eax, eax
jne 0x46c78d
xor eax, eax
jmp 0x46c792
mov eax, 1
mov esp, ebp
pop ebp
ret