Function at 0x403360
Capabilities:
Read .ini file

Disassembly:
sub esp, 0xeec
mov cx, word [0x4109c8]
mov ax, word [0x4109c4]
mov dx, word [0x4109c0]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push ebp
push esi
mov word [esp + 0xc], cx
push edi
mov word [esp + 0x12], ax
mov al, byte [0x4109c2]
lea ecx, [esp + 0x248]
push 0x415080
push ecx
mov word [esp + 0x1c], dx
mov byte [esp + 0x1e], al
xor edi, edi
xor esi, esi
call ebx
lea edx, [esp + 0x248]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 3
jle 0x4033d5
lea eax, [esp + 0x248]
push 0x410350
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp dword [0x410220], 4
je 0x4033ed
lea ecx, [esp + 0x248]
push str.ltsetup.ini
push ecx
jmp 0x4033fa
lea edx, [esp + 0x248]
push str.agsetup.ini
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov al, byte [0x41600c]
cmp al, 1
jne 0x403418
lea eax, [esp + 0x148]
push str.LAUNCH_FILES_NT
push eax
jmp 0x403438
cmp al, 2
jne 0x40342b
lea ecx, [esp + 0x148]
push str.LAUNCH_FILES_Win2K
push ecx
jmp 0x403438
lea edx, [esp + 0x148]
push 0x410974
push edx
call ebx
lea eax, [esp + 0x248]
lea ecx, [esp + 0x6fc]
push eax
push 0x800
push ecx
push 0
lea edx, [esp + 0x158]
push 0
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov al, byte [esp + edi + 0x6fc]
test al, al
je 0x4037a6
mov byte [esp + esi + 0x34c], al
mov al, byte [esp + edi + 0x6fd]
inc esi
inc edi
test al, al
jne 0x403470
mov byte [esp + esi + 0x34c], al
lea eax, [esp + 0x3cc]
push 0x414498
push eax
mov dword [esp + 0x20], edi
call ebx
lea ecx, [esp + 0x248]
lea edx, [esp + 0x3cc]
push ecx
push 0x100
push edx
lea eax, [esp + 0x358]
push 0
lea ecx, [esp + 0x158]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [esp + 0x12]
lea eax, [esp + 0x3cc]
push edx
push eax
call fcn.0040a180
add esp, 8
lea ecx, [esp + 0x4cc]
mov esi, eax
push 0x414498
push ecx
call ebx
lea edx, [esp + 0x4cc]
push esi
push edx
call ebx
lea eax, [esp + 0x12]
push eax
push 0
call fcn.0040a180
add esp, 8
test eax, eax
jne 0x403530
lea ecx, [esp + 0x44]
push 0x415080
push ecx
call ebx
lea edx, [esp + 0x44]
push 0x410350
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x403691
push eax
lea eax, [esp + 0x3d0]
push eax
call ebx
lea ecx, [esp + 0x14]
lea edx, [esp + 0x3cc]
push ecx
push edx
call fcn.0040a180
mov cl, byte [0x414a21]
mov ebp, eax
mov al, byte [0x414a20]
add esp, 8
test ebp, ebp
mov byte [esp + 0x44], al
mov byte [esp + 0x45], cl
mov byte [esp + 0x46], 0x5c
mov byte [esp + 0x47], 0
je 0x403691
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.0040a280
mov edx, eax
add esp, 4
mov esi, str._windows
mov eax, ebp
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x4035b8
test cl, cl
je 0x4035b4
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x4035b8
add eax, 2
add esi, 2
test cl, cl
jne 0x403594
xor eax, eax
jmp 0x4035bd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4035fa
mov edi, 0x4148c0
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea ebx, [esp + 0x44]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
jmp 0x403638
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esp + 0x44]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
dec edi
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
xor eax, eax
and ecx, 3
lea edx, [esp + 0x44]
rep movsb byte es:[edi], byte [esi]
mov edi, 0x410350
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x14]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
push 0
call fcn.0040a180
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x403577
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [esp + 0x10]
lea edx, [esp + 0x4cc]
push ecx
push edx
call fcn.0040a180
add esp, 8
push eax
lea eax, [esp + 0x1cc]
push eax
call ebx
lea ecx, [esp + 0x1c8]
lea edx, [esp + 0x44]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea edi, [esp + 0x1c8]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.0040a280
mov edx, eax
lea edi, [esp + 0x1cc]
or ecx, 0xffffffff
xor eax, eax
add esp, 4
mov ebx, 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], edx
push ecx
push 0
call fcn.0040a180
mov esi, eax
add esp, 8
test esi, esi
je 0x403776
lea ebp, [esp + 0x20]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.0040a280
mov edx, eax
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
add esp, 4
add ebp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
inc ebx
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x10]
mov dword [ebp - 4], edx
push ecx
push 0
call fcn.0040a180
mov esi, eax
add esp, 8
test esi, esi
jne 0x403725
lea edx, [esp + 0x1c]
lea eax, [esp + 0x44]
push edx
xor esi, esi
push eax
push 1
mov dword [esp + ebx*4 + 0x28], esi
call fcn.0040a260
mov eax, dword [esp + 0x24]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
add esp, 0xc
inc eax
mov dword [esp + 0x18], eax
mov edi, eax
jmp 0x403461
mov eax, dword [0x414424]
test eax, eax
je 0x4037b6
push 0x410970
jmp 0x4037bb
push 0x41096c
call fcn.00406ee0
mov eax, dword [0x414440]
add esp, 4
test eax, eax
je 0x4037d3
push 0x410970
jmp 0x4037d8
push 0x41096c
call fcn.00407020
mov eax, dword [0x410220]
add esp, 4
cmp eax, 1
jne 0x4037f1
push 0x410968
jmp 0x403813
cmp eax, 2
jne 0x4037fd
push 0x410964
jmp 0x403813
cmp eax, 3
jne 0x403809
push 0x410960
jmp 0x403813
cmp eax, 4
jne 0x40381b
push str.4321NY
call fcn.00407160
add esp, 4
mov eax, dword [0x414470]
test eax, eax
je 0x403829
call fcn.004072a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xeec
ret