Function at 0x401dc0
Capabilities:
Get file size
Read .ini file

Disassembly:
sub esp, 0x10c
cmp dword [0x43134c], 0
push ebx
push esi
push edi
push ebp
jne 0x401de0
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10c
ret
cmp dword [0x42f864], 0xffffffff
jne 0x401e24
lea eax, [esp + 0x1c]
push pe_nt_image_headers32
push eax
mov ecx, dword [0x438580]
push 0x3767
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea ecx, [esp + 0x1c]
push ecx
push str.___s
call fcn.0040cf50
add esp, 8
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10c
ret
cmp dword [0x42f7e0], 0
jne 0x4023a2
cmp dword [0x43147c], 0
jne 0x4023a2
push 0x100
mov ebp, dword [sym.imp.KERNEL32.dll_LocalAlloc]
push 0x40
call ebp
mov esi, eax
test esi, esi
jne 0x401e8e
lea eax, [esp + 0x1c]
push pe_nt_image_headers32
push eax
mov ecx, dword [0x438580]
push 0x36f9
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea ecx, [esp + 0x1c]
push ecx
push str.___s__1_
call fcn.0040cf50
add esp, 8
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10c
ret
push 0x100
push 0x40
call ebp
mov edi, eax
test edi, edi
jne 0x401ee1
lea eax, [esp + 0x1c]
push pe_nt_image_headers32
push eax
mov ecx, dword [0x438580]
push 0x36f9
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
push esi
mov ebp, dword [sym.imp.KERNEL32.dll_LocalFree]
call ebp
lea ecx, [esp + 0x1c]
push ecx
push str.___s__2_
call fcn.0040cf50
add esp, 8
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10c
ret
push 0x100
push 0x40
call ebp
mov ebx, eax
test ebx, ebx
jne 0x401f37
lea eax, [esp + 0x1c]
push pe_nt_image_headers32
push eax
mov ecx, dword [0x438580]
push 0x36f9
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
push esi
mov ebp, dword [sym.imp.KERNEL32.dll_LocalFree]
call ebp
push edi
call ebp
lea ecx, [esp + 0x1c]
push ecx
push str.___s__3_
call fcn.0040cf50
add esp, 8
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10c
ret
push 0x100
push 0x40
call ebp
mov ebp, eax
test ebp, ebp
jne 0x401f90
lea eax, [esp + 0x1c]
push pe_nt_image_headers32
push eax
mov ecx, dword [0x438580]
push 0x36f9
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
push ebx
mov ebp, dword [sym.imp.KERNEL32.dll_LocalFree]
call ebp
push esi
call ebp
push edi
call ebp
lea ecx, [esp + 0x1c]
push ecx
push str.___s__4_
call fcn.0040cf50
add esp, 8
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10c
ret
mov eax, dword [esp + 0x120]
push 0x438470
push 0x100
push ebp
push 0x42f0f0
push str.REGETRDIR
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [esp + 0x120]
push 0x438470
push 0x100
push edi
push 0x42f0f0
push str.REGETRFILE
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [esp + 0x120]
push 0x438470
push 0x100
push ebx
push 0x42f0f0
push str.REGETLDIR
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [esp + 0x120]
push 0x438470
push 0x100
push esi
push 0x42f0f0
push str.REGETLFILE
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push ebp
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x402383
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x402383
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x402383
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x402383
lea eax, [esp + 0x1c]
push 0x100
push eax
mov ecx, dword [0x438580]
push 0x37ac
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea ecx, [esp + 0x1c]
push ecx
push 0x438c30
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push edi
push ebp
push 0x438c30
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 0x438c30
push eax
call fcn.0040c790
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [ebx + eax - 1], 0x5c
jne 0x4020b9
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov byte [eax + ebx - 1], 0
push ebx
push str._n____n___s
push 0x438c30
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 0x438c30
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [ebx + eax - 1], 0x5c
je 0x4020f7
push 0x42f16c
push 0x438c30
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push esi
push 0x438c30
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x24
mov eax, dword [0x42f7d0]
push 0x438030
push 0x438c30
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x402373
call fcn.0041f010
push ebx
call fcn.0041feb0
add esp, 4
mov eax, dword [0x42f7d0]
push eax
call fcn.0041ea00
add esp, 4
push 0
push pe_nt_image_headers32
push 3
push 0
push 1
push 0x40000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esp + 0x14], eax
cmp eax, 0xffffffff
je 0x4022bb
lea eax, [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [esp + 0x10], eax
cmp eax, 0x400
jbe 0x40218b
and dword [esp + 0x10], 0xfffffc00
jmp 0x402193
mov dword [esp + 0x10], 0
lea eax, [esp + 0x18]
push 0
mov ecx, dword [esp + 0x14]
push eax
mov edx, dword [esp + 0x1c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x402276
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push eax
mov edx, dword [0x42f864]
push edi
push ebp
push ecx
push edx
call fcn.004019a0
add esp, 0x14
test eax, eax
jne 0x402200
lea eax, [esp + 0x1c]
push 0x100
push eax
mov ecx, dword [0x438580]
push 0x37b5
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea ecx, [esp + 0x1c]
push ecx
push str.___s
call fcn.0040cf50
add esp, 8
cmp dword [0x42fcd8], 2
jne 0x40221e
mov eax, dword [esp + 0x120]
push esi
push edi
push ebp
push eax
call fcn.004015d0
add esp, 0x10
jmp 0x402245
cmp dword [0x42fcd8], 1
jne 0x402245
cmp dword [0x431040], 0
je 0x402245
mov eax, dword [esp + 0x120]
push edi
push ebp
push eax
push esi
push 2
call fcn.00410d20
add esp, 0x14
cmp dword [0x42fcd8], 2
je 0x40225e
mov eax, dword [esp + 0x120]
push eax
call fcn.004016e0
add esp, 4
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x42f7d0]
push eax
call fcn.0041ea00
add esp, 4
jmp 0x4022ab
lea eax, [esp + 0x1c]
push 0x100
push eax
mov ecx, dword [0x438580]
push 0x37b7
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea ecx, [esp + 0x1c]
push 0x10
push 0x438030
mov edx, dword [0x42f7d0]
push ecx
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x402383
lea eax, [esp + 0x1c]
push 0x100
push eax
mov ecx, dword [0x438580]
push 0x3765
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea ecx, [esp + 0x1c]
push 0x24
push 0x438030
mov edx, dword [0x42f7d0]
push ecx
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x40233c
mov eax, dword [esp + 0x120]
push eax
call fcn.004016e0
lea eax, [esp + 0x20]
add esp, 4
mov ecx, dword [0x438580]
push 0x100
push eax
push 0x37b8
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea ecx, [esp + 0x1c]
push 0x40
push 0x438030
mov edx, dword [0x42f7d0]
push ecx
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x402383
lea eax, [esp + 0x1c]
push 0x100
push eax
mov ecx, dword [0x438580]
push 0x37b6
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea ecx, [esp + 0x1c]
push 0x30
push 0x438030
mov edx, dword [0x42f7d0]
push ecx
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x402383
mov eax, dword [esp + 0x120]
push eax
call fcn.004016e0
add esp, 4
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_LocalFree]
call ebp
push ebx
call ebp
push edi
call ebp
push esi
call ebp
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10c
ret
lea eax, [esp + 0x1c]
push pe_nt_image_headers32
push eax
mov ecx, dword [0x438580]
push 0x36c0
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea ecx, [esp + 0x1c]
push ecx
push str.___s
call fcn.0040cf50
add esp, 8
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10c
ret