Function at 0x428e40
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x45af56
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x124
push ebx
push ebp
push esi
mov ebp, ecx
mov al, byte [esp + 0x144]
mov dword [esp + 0x138], 1
cmp al, 0x12
je 0x428e7e
cmp al, 0x15
je 0x428e7e
cmp al, 0x98
jne 0x428e86
mov byte [esp + 0x144], 0x10
mov esi, dword [esp + 0x154]
mov al, byte [esp + 0x150]
xor ebx, ebx
test al, 0x80
mov byte [esi + 0x12], bl
mov byte [esi + 0x13], bl
mov byte [esi + 0x14], bl
je 0x42903e
lea ecx, [esp + 0xc]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x144]
mov ecx, dword [esp + 0x140]
and eax, 0xff
lea edx, [esp + 0xc]
push eax
push ecx
push str._sCTL_02XFlashList.ini
push edx
mov byte [esp + 0x148], 2
call sub.MFC42.DLL_CString::Format
add esp, 0x10
lea ecx, [esp + 0x14c]
call sub.MFC42.DLL_CString::MakeUpper
push str..BIN
lea ecx, [esp + 0x150]
call sub.MFC42.DLL_CString::Find_1
add eax, 4
lea ecx, [esp + 0x14c]
push eax
lea eax, [esp + 0x28]
push eax
call sub.MFC42.DLL_CString::Left
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x30]
push 0x104
push edx
push 0x4970cc
push eax
push str.MODULE_FETURE
mov byte [esp + 0x150], 3
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [esp + 0x2c], bl
jne 0x428f5a
lea ecx, [esp + 0x28]
push 0x48d780
push ecx
mov dword [esp + 0x30], 0x30600
call sub.MSVCRT.dll__CxxThrowException
lea edx, [esp + 0x22]
push edi
lea eax, [esp + 0x24]
push edx
lea ecx, [esp + 0x26]
push eax
lea edx, [esp + 0x28]
push ecx
lea eax, [esp + 0x2a]
push edx
lea ecx, [esp + 0x2c]
push eax
lea edx, [esp + 0x2e]
push ecx
lea eax, [esp + 0x30]
push edx
lea ecx, [esp + 0x32]
push eax
lea edx, [esp + 0x34]
push ecx
push edx
lea eax, [esp + 0x58]
push str._hu__hu__hu__hu__hu__hu__hu__hu__hu__hu
push eax
call dword [sym.imp.MSVCRT.dll_sscanf]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
and edx, 0xffff
mov cl, byte [esp + 0x44]
mov dword [esi + 4], edx
mov dl, byte [esp + 0x50]
mov edi, dword [esp + 0x4a]
mov byte [esi + 0x11], dl
mov dl, byte [esp + 0x52]
and eax, 0xffff
mov byte [esi + 0x12], dl
mov dl, byte [esp + 0x54]
mov dword [esi + 0xc], eax
mov al, byte [esp + 0x4e]
mov byte [esi + 1], cl
mov ecx, dword [esp + 0x46]
mov byte [esi + 0x13], dl
mov dl, byte [esp + 0x56]
add esp, 0x30
cmp al, bl
mov byte [esi + 2], cl
mov word [esi + 8], di
mov byte [esi + 0x10], al
mov byte [esi + 0x14], dl
jne 0x428ffa
mov byte [esi + 0x10], 4
mov eax, dword [ebp + 0x4c]
and ecx, 0xff
xor edx, edx
div ecx
mov ecx, edi
pop edi
and ecx, 0xffff
cmp ecx, eax
jae 0x429016
mov eax, ecx
lea ecx, [esp + 0x24]
mov word [esi + 8], ax
mov byte [esp + 0x138], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
mov byte [esp + 0x138], 1
call sub.MFC42.DLL_CString::CString
jmp 0x429070
mov byte [esi + 1], 1
mov byte [esi + 2], 1
mov dl, byte [ebp + 0xe]
xor eax, eax
cmp dl, 1
setne al
mov dword [esi + 4], eax
mov eax, dword [ebp + 0x4c]
cmp eax, 0x800
jbe 0x429063
mov eax, 0x800
mov word [esi + 8], ax
mov dword [esi + 0xc], ebx
mov byte [esi + 0x10], bl
mov byte [esi + 0x11], bl
lea ecx, [esp + 0x140]
mov byte [esp + 0x138], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14c]
mov dword [esp + 0x138], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x130]
pop esi
pop ebp
mov eax, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x130
ret 0x18