Function at 0x402c70
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x65c
mov eax, dword [0x4dc1bc]
xor eax, ebp
mov dword [ebp - 4], eax
push edi
mov dword [ebp - 0x64c], 0
mov byte [ebp - 0x104], 0
push 0xff
push 0
lea eax, [ebp - 0x103]
push eax
call fcn.004917a0
add esp, 0xc
mov byte [ebp - 0x204], 0
push 0xff
push 0
lea ecx, [ebp - 0x203]
push ecx
call fcn.004917a0
add esp, 0xc
mov edx, dword [ebp + 8]
mov dword [ebp - 0x630], edx
lea eax, [ebp - 0x104]
mov dword [ebp - 0x610], eax
mov ecx, dword [ebp - 0x610]
mov dword [ebp - 0x650], ecx
mov edx, dword [ebp - 0x630]
mov al, byte [edx]
mov byte [ebp - 0x605], al
mov ecx, dword [ebp - 0x610]
mov dl, byte [ebp - 0x605]
mov byte [ecx], dl
mov eax, dword [ebp - 0x630]
add eax, 1
mov dword [ebp - 0x630], eax
mov ecx, dword [ebp - 0x610]
add ecx, 1
mov dword [ebp - 0x610], ecx
cmp byte [ebp - 0x605], 0
jne 0x402ce9
lea edx, [ebp - 0x104]
add edx, 0xffffffff
mov dword [ebp - 0x614], edx
mov eax, dword [ebp - 0x614]
mov cl, byte [eax + 1]
mov byte [ebp - 0x609], cl
add dword [ebp - 0x614], 1
cmp byte [ebp - 0x609], 0
jne 0x402d3b
mov edi, dword [ebp - 0x614]
mov edx, dword [0x4c2644]
mov dword [edi], edx
mov eax, dword [0x4c2648]
mov dword [edi + 4], eax
mov ecx, dword [0x4c264c]
mov dword [edi + 8], ecx
mov dx, word [0x4c2650]
mov word [edi + 0xc], dx
lea eax, [ebp - 0x204]
add eax, 0xffffffff
mov dword [ebp - 0x618], eax
mov ecx, dword [ebp - 0x618]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x60a], dl
add dword [ebp - 0x618], 1
cmp byte [ebp - 0x60a], 0
jne 0x402d93
mov edi, dword [ebp - 0x618]
mov eax, dword [str.D:TECSUN]
mov dword [edi], eax
mov ecx, dword [0x4c2658]
mov dword [edi + 4], ecx
mov dx, word [0x4c265c]
mov word [edi + 8], dx
lea eax, [ebp - 0x204]
add eax, 0xffffffff
mov dword [ebp - 0x61c], eax
mov ecx, dword [ebp - 0x61c]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x60b], dl
add dword [ebp - 0x61c], 1
cmp byte [ebp - 0x60b], 0
jne 0x402de2
mov edi, dword [ebp - 0x61c]
mov eax, dword [str.TSDrvCfg.ini]
mov dword [edi], eax
mov ecx, dword [0x4c2664]
mov dword [edi + 4], ecx
mov edx, dword [0x4c2668]
mov dword [edi + 8], edx
mov ax, word [0x4c266c]
mov word [edi + 0xc], ax
lea ecx, [ebp - 0x104]
push ecx
push 0
push 0x4c2670
push 0x4c2678
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0
jne 0x403058
lea edx, [ebp - 0x204]
push edx
push 0
push str.Flag
push 0x4c2684
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0
jne 0x402ff1
mov dword [0x4e328c], 1
mov byte [ebp - 0x604], 0
push 0x3ff
push 0
lea eax, [ebp - 0x603]
push eax
call fcn.004917a0
add esp, 0xc
push 0x100
push 0
lea ecx, [ebp - 0x104]
push ecx
call fcn.004917a0
add esp, 0xc
mov edx, dword [ebp + 8]
mov dword [ebp - 0x638], edx
lea eax, [ebp - 0x104]
mov dword [ebp - 0x620], eax
mov ecx, dword [ebp - 0x620]
mov dword [ebp - 0x654], ecx
mov edx, dword [ebp - 0x638]
mov al, byte [edx]
mov byte [ebp - 0x606], al
mov ecx, dword [ebp - 0x620]
mov dl, byte [ebp - 0x606]
mov byte [ecx], dl
mov eax, dword [ebp - 0x638]
add eax, 1
mov dword [ebp - 0x638], eax
mov ecx, dword [ebp - 0x620]
add ecx, 1
mov dword [ebp - 0x620], ecx
cmp byte [ebp - 0x606], 0
jne 0x402ee0
lea edx, [ebp - 0x104]
add edx, 0xffffffff
mov dword [ebp - 0x624], edx
mov eax, dword [ebp - 0x624]
mov cl, byte [eax + 1]
mov byte [ebp - 0x60c], cl
add dword [ebp - 0x624], 1
cmp byte [ebp - 0x60c], 0
jne 0x402f32
mov edi, dword [ebp - 0x624]
mov edx, dword [str.TSDrvCfg.dll]
mov dword [edi], edx
mov eax, dword [0x4c268c]
mov dword [edi + 4], eax
mov ecx, dword [0x4c2690]
mov dword [edi + 8], ecx
mov dx, word [0x4c2694]
mov word [edi + 0xc], dx
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x63c], eax
push str.iGetConfig
mov ecx, dword [ebp - 0x63c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x648], eax
cmp dword [ebp - 0x648], 0
jne 0x402fb6
xor eax, eax
jmp 0x4030bf
lea edx, [ebp - 0x604]
push edx
call dword [ebp - 0x648]
mov dword [ebp - 0x64c], eax
lea eax, [ebp - 0x604]
push eax
call fcn.004033d0
add esp, 4
mov ecx, dword [ebp - 0x63c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0x63c], 0
jmp 0x403056
lea edx, [ebp - 0x204]
mov dword [ebp - 0x640], edx
mov dword [ebp - 0x628], 0x4e3188
mov eax, dword [ebp - 0x628]
mov dword [ebp - 0x658], eax
mov ecx, dword [ebp - 0x640]
mov dl, byte [ecx]
mov byte [ebp - 0x607], dl
mov eax, dword [ebp - 0x628]
mov cl, byte [ebp - 0x607]
mov byte [eax], cl
mov edx, dword [ebp - 0x640]
add edx, 1
mov dword [ebp - 0x640], edx
mov eax, dword [ebp - 0x628]
add eax, 1
mov dword [ebp - 0x628], eax
cmp byte [ebp - 0x607], 0
jne 0x403013
jmp 0x4030bd
lea ecx, [ebp - 0x104]
mov dword [ebp - 0x644], ecx
mov dword [ebp - 0x62c], 0x4e3188
mov edx, dword [ebp - 0x62c]
mov dword [ebp - 0x65c], edx
mov eax, dword [ebp - 0x644]
mov cl, byte [eax]
mov byte [ebp - 0x608], cl
mov edx, dword [ebp - 0x62c]
mov al, byte [ebp - 0x608]
mov byte [edx], al
mov ecx, dword [ebp - 0x644]
add ecx, 1
mov dword [ebp - 0x644], ecx
mov edx, dword [ebp - 0x62c]
add edx, 1
mov dword [ebp - 0x62c], edx
cmp byte [ebp - 0x608], 0
jne 0x40307a
xor eax, eax
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00478787
mov esp, ebp
pop ebp
ret