Function at 0x403430
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56741d
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x5ca004]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
lea ecx, [ebp - 0x18]
call fcn.00402b50
push str.RD_Download.ini
push eax
lea eax, [ebp - 0x10]
mov dword [ebp - 4], 0
push eax
call fcn.004040f0
add esp, 0xc
mov byte [ebp - 4], 2
or edi, 0xffffffff
mov edx, dword [ebp - 0x18]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40349c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push 0
push 0x5ab9a0
push str.Common
call ebx
push dword [ebp - 0x10]
neg eax
push 1
sbb eax, eax
push str.EraseFactoryNV
inc eax
push str.Common
mov dword [esi + 0x258], eax
call ebx
push dword [ebp - 0x10]
mov dword [esi + 0x260], eax
push 0
push str.EraseRFNV
push str.Common
call ebx
push dword [ebp - 0x10]
mov dword [esi + 0x268], eax
push 0
push str.EraseUserNV
push str.Common
call ebx
push dword [ebp - 0x10]
mov dword [esi + 0x270], eax
push 0
push str.AutoRun
push str.Common
call ebx
push dword [ebp - 0x10]
mov dword [esi + 0x278], eax
push 0x2580
push str.Baudrate_AT
push str.Common
call ebx
push dword [ebp - 0x10]
mov dword [esi + 0x294], eax
push 0xe1000
push str.Baudrate_DL
push str.Common
call ebx
push dword [ebp - 0x10]
mov dword [esi + 0x298], eax
push 0xe1000
push str.Baudrate_Log
push str.Common
call ebx
push dword [ebp - 0x10]
mov dword [esi + 0x29c], eax
push 0
push str.CheckContent
push str.Common
call ebx
push dword [ebp - 0x10]
mov dword [esi + 0x28c], eax
push 0
push str.CheckOtp
push str.Common
call ebx
lea ecx, [ebp - 0x1c]
mov dword [esi + 0x284], eax
call fcn.00402b50
push str.XYDownload.ini
push eax
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 3
push eax
call fcn.004040f0
mov byte [ebp - 4], 2
add esp, 0xc
mov edx, dword [ebp - 0x1c]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4035d2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x14]
push 0
push str.EnableDownType
push str.Download
call ebx
push dword [ebp - 0x14]
mov dword [esi + 0x25c], eax
push 1
push str.EnableFactoryNV
push str.Download
call ebx
push dword [ebp - 0x14]
mov dword [esi + 0x264], eax
push 1
push str.EnableRFNV
push str.Download
call ebx
push dword [ebp - 0x14]
mov dword [esi + 0x26c], eax
push 1
push str.EnableUserNV
push str.Download
call ebx
push dword [ebp - 0x14]
mov dword [esi + 0x274], eax
push 1
push str.EnableAutoRun
push str.Download
call ebx
push dword [ebp - 0x14]
mov dword [esi + 0x27c], eax
push 1
push str.EnableOtp
push str.Download
call ebx
push dword [ebp - 0x14]
mov dword [esi + 0x280], eax
push 1
push str.ImageFmt
push str.Download
call ebx
mov edx, dword [ebp - 0x14]
mov dword [esi + 0x288], eax
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40368d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x4036ac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret