Function at 0x40ef00
Capabilities:
Get common file path
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x42b6ef
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
mov eax, 0x10230
call fcn.00421fb0
mov eax, dword [0x467c30]
xor eax, dword [esp + 0x1023c]
push ebx
push ebp
push esi
push edi
xor ebx, ebx
mov edi, ecx
mov esi, 0xf
mov dword [esp + 0x1023c], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], ebx
mov byte [esp + 0x38], bl
mov dword [esp + 0x10248], ebx
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], bl
mov al, byte [esp + 0x13]
lea ecx, [esp + 0x14]
mov byte [esp + 0x10248], 1
mov byte [esp + 0x14], al
call fcn.0040caa0
mov dword [esp + 0x18], eax
mov byte [eax + 0x45], 1
mov eax, dword [esp + 0x18]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x18]
mov dword [eax], eax
mov eax, dword [esp + 0x18]
mov dword [eax + 8], eax
mov dword [esp + 0x1c], ebx
mov cl, byte [esp + 0x13]
mov byte [esp + 0x20], cl
lea ecx, [esp + 0x20]
mov byte [esp + 0x10248], 2
call fcn.0040cae0
mov dword [esp + 0x24], eax
mov byte [eax + 0x35], 1
mov eax, dword [esp + 0x24]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x24]
mov dword [eax], eax
mov eax, dword [esp + 0x24]
mov dword [eax + 8], eax
mov dword [esp + 0x28], ebx
mov edx, dword [esp + 0x10250]
push edx
lea eax, [esp + 0x13c]
push eax
mov byte [esp + 0x10250], 3
call dword [sym.imp.kernel32.dll_lstrcpyA]
lea ecx, [esp + 0x138]
push ecx
call dword [sym.imp.user32.dll_CharLowerA]
lea eax, [esp + 0x138]
mov dword [esp + 0x90], esi
mov dword [esp + 0x8c], ebx
mov byte [esp + 0x7c], bl
lea esi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40f020
sub eax, esi
push eax
lea edx, [esp + 0x13c]
push edx
lea ecx, [esp + 0x80]
call fcn.004042f0
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x54]
push ecx
mov ecx, edi
mov byte [esp + 0x10250], 4
call fcn.0040cd90
mov eax, dword [eax]
cmp eax, dword [edi + 4]
mov eax, dword [esp + 0x90]
mov ebp, 0x10
setne byte [esp + 0x13]
cmp eax, ebp
mov byte [esp + 0x10248], 3
jb 0x40f086
mov edx, dword [esp + 0x7c]
push edx
call fcn.00420d2b
add esp, 4
cmp byte [esp + 0x13], bl
je 0x40f12f
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
push eax
push ecx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x10254], 2
call fcn.0040e440
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00420d2b
mov eax, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov ecx, dword [eax]
push eax
push ecx
lea edx, [esp + 0x38]
push edx
lea ecx, [esp + 0x20]
mov byte [esp + 0x10254], 1
call fcn.0040d5a0
mov eax, dword [esp + 0x18]
push eax
call fcn.00420d2b
mov eax, dword [esp + 0x78]
add esp, 4
cmp eax, ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
jb 0x40f10b
mov ecx, dword [esp + 0x60]
push ecx
call fcn.00420d2b
add esp, 4
cmp dword [esp + 0x4c], ebp
mov dword [esp + 0x74], 0xf
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], bl
jb 0x40f7ae
mov edx, dword [esp + 0x38]
push edx
jmp 0x40f7a6
lea eax, [esp + 0x23c]
push eax
push 0x7fff
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryA]
test eax, eax
jne 0x40f15b
lea ecx, [esp + 0x138]
push ecx
push 0x42d314
call fcn.004072b0
add esp, 8
lea eax, [esp + 0x23c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40f165
sub eax, edx
push eax
lea edx, [esp + 0x240]
push edx
lea ecx, [esp + 0x3c]
call fcn.004042f0
mov eax, 0x42c508
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40f188
sub eax, edx
push eax
push 0x42c508
lea ecx, [esp + 0x3c]
call fcn.00405660
lea eax, [esp + 0x138]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40f1b0
sub eax, edx
push eax
lea eax, [esp + 0x13c]
push eax
lea ecx, [esp + 0x3c]
call fcn.00405660
cmp dword [esp + 0x4c], ebp
mov eax, dword [esp + 0x38]
jae 0x40f1d9
lea eax, [esp + 0x38]
push eax
push 0x7fff
lea ecx, [esp + 0x244]
push ecx
call dword [sym.imp.kernel32.dll_GetPrivateProfileSectionNamesA]
test eax, eax
jne 0x40f29a
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
push eax
push ecx
lea edx, [esp + 0x38]
push edx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x10254], 2
call fcn.0040e440
mov eax, dword [esp + 0x24]
push eax
call fcn.00420d2b
mov eax, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov ecx, dword [eax]
push eax
push ecx
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x10254], 1
call fcn.0040d5a0
mov edx, dword [esp + 0x18]
push edx
call fcn.00420d2b
mov eax, dword [esp + 0x78]
add esp, 4
cmp eax, ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
jb 0x40f270
mov eax, dword [esp + 0x60]
push eax
call fcn.00420d2b
add esp, 4
cmp dword [esp + 0x4c], ebp
mov dword [esp + 0x74], 0xf
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], bl
jb 0x40f293
mov ecx, dword [esp + 0x38]
push ecx
call fcn.00420d2b
add esp, 4
xor al, al
jmp 0x40f7b0
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 4]
push eax
lea ecx, [esp + 0x24]
call fcn.0040e2c0
mov eax, dword [esp + 0x24]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], ebx
mov dword [eax], eax
mov eax, dword [esp + 0x24]
mov dword [eax + 8], eax
cmp byte [esp + 0x23c], bl
lea esi, [esp + 0x23c]
je 0x40f669
jmp 0x40f2e0
mov esi, dword [esp + 0x54]
lea ecx, [ecx]
push esi
mov dword [esp + 0x54], esi
call dword [sym.imp.user32.dll_CharLowerA]
push esi
call dword [sym.imp.kernel32.dll_lstrlenA]
lea ecx, [esi + eax + 1]
cmp dword [esp + 0x4c], ebp
mov eax, dword [esp + 0x38]
mov dword [esp + 0x54], ecx
jae 0x40f308
lea eax, [esp + 0x38]
push eax
push 0x7fff
lea edx, [esp + 0x8244]
push edx
push esi
call dword [sym.imp.kernel32.dll_GetPrivateProfileSectionA]
test eax, eax
jne 0x40f33e
cmp dword [esp + 0x4c], ebp
mov eax, dword [esp + 0x38]
jae 0x40f32f
lea eax, [esp + 0x38]
push eax
push esi
push 0x42d2d0
call fcn.004072b0
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x18]
call fcn.0040d2e0
mov eax, dword [esp + 0x18]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebx
mov dword [eax], eax
mov eax, dword [esp + 0x18]
mov dword [eax + 8], eax
cmp byte [esp + 0x823c], bl
lea ebp, [esp + 0x823c]
je 0x40f5a3
jmp 0x40f381
mov ebp, dword [esp + 0x58]
push ebp
call dword [sym.imp.kernel32.dll_lstrlenA]
lea edx, [eax + ebp + 1]
mov eax, ebp
mov dword [esp + 0x58], edx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40f395
sub eax, edx
push eax
push ebp
lea ecx, [esp + 0x64]
call fcn.004042f0
mov edx, 0x42d2cc
mov esi, eax
lea edi, [edx + 1]
mov al, byte [edx]
inc edx
cmp al, bl
jne 0x40f3b3
sub edx, edi
push edx
push ebx
push 0x42d2cc
mov ecx, esi
call fcn.0040c850
mov esi, eax
cmp esi, 0xffffffff
mov edi, 0x10
jne 0x40f3f3
cmp dword [esp + 0x4c], edi
mov eax, dword [esp + 0x38]
jae 0x40f3e4
lea eax, [esp + 0x38]
push ebp
push eax
push 0x42d290
call fcn.004072b0
add esp, 0xc
sub esp, 0x1c
mov eax, esp
mov dword [esp + 0xb0], esp
push 0xffffffffffffffff
lea ecx, [esi + 1]
push ecx
push eax
lea ecx, [esp + 0x84]
call fcn.004044b0
sub esp, 0x1c
mov edx, esp
mov dword [esp + 0x64], esp
push esi
push ebx
push edx
lea ecx, [esp + 0xa0]
mov byte [esp + 0x1028c], 5
call fcn.004044b0
lea eax, [esp + 0x110]
push eax
mov byte [esp + 0x10284], 3
call fcn.0040d250
add esp, 0x3c
mov esi, eax
push 0xffffffffffffffff
push ebx
mov ebp, 0xf
push esi
lea ecx, [esp + 0xac]
mov byte [esp + 0x10254], 6
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xc0], ebx
mov byte [esp + 0xb0], bl
call fcn.00404240
push 0xffffffffffffffff
push ebx
add esi, 0x1c
push esi
lea ecx, [esp + 0xc8]
mov byte [esp + 0x10254], 7
mov dword [esp + 0xe0], ebp
mov dword [esp + 0xdc], ebx
mov byte [esp + 0xcc], bl
call fcn.00404240
lea ecx, [esp + 0xa0]
push ecx
lea edx, [esp + 0x9c]
push edx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x10250], 8
call fcn.0040d710
cmp dword [esp + 0xd4], edi
jb 0x40f4e8
mov eax, dword [esp + 0xc0]
push eax
call fcn.00420d2b
add esp, 4
cmp dword [esp + 0xb8], edi
mov dword [esp + 0xd4], ebp
mov dword [esp + 0xd0], ebx
mov byte [esp + 0xc0], bl
jb 0x40f516
mov ecx, dword [esp + 0xa4]
push ecx
call fcn.00420d2b
add esp, 4
cmp dword [esp + 0x10c], edi
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xb4], ebx
mov byte [esp + 0xa4], bl
mov byte [esp + 0x10248], 3
jb 0x40f54c
mov edx, dword [esp + 0xf8]
push edx
call fcn.00420d2b
add esp, 4
cmp dword [esp + 0xf0], edi
mov dword [esp + 0x10c], ebp
mov dword [esp + 0x108], ebx
mov byte [esp + 0xf8], bl
jb 0x40f57a
mov eax, dword [esp + 0xdc]
push eax
call fcn.00420d2b
add esp, 4
mov ecx, dword [esp + 0x58]
cmp byte [ecx], bl
mov dword [esp + 0xf0], ebp
mov dword [esp + 0xec], ebx
mov byte [esp + 0xdc], bl
jne 0x40f37d
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x30]
sub esp, 0xc
lea edx, [esp + 0x20]
mov dword [esp + 0x38], esp
mov ecx, esp
push edx
call fcn.0040d930
lea eax, [esp + 0x84]
push esi
push eax
call fcn.0040db80
add esp, 0x14
push eax
lea ecx, [esp + 0x114]
mov byte [esp + 0x1024c], 9
call fcn.0040daf0
lea ecx, [esp + 0x110]
push ecx
lea edx, [esp + 0x9c]
push edx
lea ecx, [esp + 0x28]
mov byte [esp + 0x10250], 0xa
call fcn.0040e160
lea ecx, [esp + 0x110]
mov byte [esp + 0x10248], 9
call fcn.0040d9f0
mov eax, dword [esp + 0x80]
mov ecx, dword [eax]
push eax
push ecx
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x88]
mov byte [esp + 0x10254], 3
call fcn.0040d5a0
mov ecx, dword [esp + 0x80]
push ecx
call fcn.00420d2b
mov edx, dword [esp + 0x58]
mov al, byte [edx]
add esp, 4
cmp al, bl
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov ebp, 0x10
jne 0x40f2d9
sub esp, 0xc
lea eax, [esp + 0x2c]
mov dword [esp + 0x38], esp
mov ecx, esp
push eax
call fcn.0040e500
lea ecx, [esp + 0x144]
push ecx
lea edx, [esp + 0x88]
push edx
call fcn.0040e780
add esp, 0x14
push eax
lea ecx, [esp + 0x114]
mov byte [esp + 0x1024c], 0xb
call fcn.0040e6f0
lea eax, [esp + 0x110]
push eax
lea ecx, [esp + 0x9c]
push ecx
mov ecx, edi
mov byte [esp + 0x10250], 0xc
call fcn.0040ed60
lea ecx, [esp + 0x110]
mov byte [esp + 0x10248], 0xb
call fcn.0040e5f0
mov eax, dword [esp + 0x80]
mov ecx, dword [eax]
push eax
push ecx
lea edx, [esp + 0x34]
push edx
lea ecx, [esp + 0x88]
mov byte [esp + 0x10254], 3
call fcn.0040e440
mov eax, dword [esp + 0x80]
push eax
call fcn.00420d2b
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
add esp, 4
push eax
push ecx
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x10254], 2
call fcn.0040e440
mov edx, dword [esp + 0x24]
push edx
call fcn.00420d2b
mov eax, dword [esp + 0x1c]
add esp, 4
push eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov ecx, dword [eax]
push ecx
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x10254], 1
call fcn.0040d5a0
mov ecx, dword [esp + 0x18]
push ecx
call fcn.00420d2b
mov eax, dword [esp + 0x78]
add esp, 4
cmp eax, ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
jb 0x40f78b
mov edx, dword [esp + 0x60]
push edx
call fcn.00420d2b
add esp, 4
cmp dword [esp + 0x4c], ebp
mov dword [esp + 0x74], 0xf
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], bl
jb 0x40f7ae
mov eax, dword [esp + 0x38]
push eax
call fcn.00420d2b
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x10240]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x1023c]
xor ecx, dword [esp + 0x1024c]
call fcn.004211fa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1023c
ret 4