Function at 0x4198e0
Capabilities:
Get common file path
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x42b4db
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1cc
mov eax, dword [0x4377f4]
xor eax, esp
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1ec]
push edi
mov edi, dword [esp + 0x1f4]
xor ebx, ebx
push 0xffffffffffffffff
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x1f0]
push ebx
mov ebp, 0xf
push esi
lea ecx, [esp + 0x8c]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x4c], edi
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa0], ebx
mov byte [esp + 0x90], bl
call fcn.004026ab
mov eax, dword [esi + 0x14]
cmp eax, 2
mov dword [esp + 0x1e4], ebx
jb 0x419989
cmp eax, 1
ja 0x419971
mov ecx, esi
call fcn.0041b4b1
cmp dword [esi + 0x18], 0x10
jb 0x41997c
mov eax, dword [esi + 4]
jmp 0x41997f
lea eax, [esi + 4]
cmp byte [eax + 1], 0x3a
je 0x419b02
push 0xffffffffffffffff
push ebx
push edi
lea ecx, [esp + 0xa8]
mov dword [esp + 0xc0], ebp
mov dword [esp + 0xbc], ebx
mov byte [esp + 0xac], bl
call fcn.004026ab
mov ecx, dword [esp + 0xb0]
push ebx
push 0x42c5d4
push ecx
push ebx
lea ecx, [esp + 0xac]
mov byte [esp + 0x1f4], 1
call fcn.00401f5c
test eax, eax
jne 0x419a1e
lea edx, [esp + 0xd4]
push edx
mov ecx, 0x41
lea edi, [esp + 0xd8]
push 0x104
rep stosd dword es:[edi], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [esp + 0xd4]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x419a00
sub eax, edx
push eax
lea eax, [esp + 0xd8]
push eax
lea ecx, [esp + 0xa4]
call fcn.004027cf
push 1
push 0x42c6fc
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.004027cf
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0xa0]
push edx
lea eax, [esp + 0x4c]
push eax
mov byte [esp + 0x1f0], 2
call fcn.00402a92
push esi
push eax
lea ecx, [esp + 0x78]
push ecx
mov byte [esp + 0x1fc], 3
call fcn.00402a92
add esp, 0x18
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x8c]
mov byte [esp + 0x1f0], 4
call fcn.004026ab
mov eax, dword [esp + 0x7c]
mov esi, 0x10
cmp eax, esi
jb 0x419aa2
mov edx, dword [esp + 0x68]
push edx
call fcn.0041c5ad
add esp, 4
cmp dword [esp + 0x5c], esi
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
jb 0x419ac1
mov eax, dword [esp + 0x48]
push eax
call fcn.0041c5ad
add esp, 4
cmp dword [esp + 0x2c], esi
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
jb 0x419ae0
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0041c5ad
add esp, 4
cmp dword [esp + 0xb4], esi
mov byte [esp + 0x1e4], bl
jb 0x419b07
mov edx, dword [esp + 0xa0]
push edx
call fcn.0041c5ad
add esp, 4
jmp 0x419b07
mov esi, 0x10
push 1
push 0x42c6fc
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.004027cf
push 1
push 0x42c744
lea ecx, [esp + 0xa4]
mov byte [esp + 0x1ec], 5
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xb8], ebx
mov byte [esp + 0xa8], bl
call fcn.004027cf
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0xa0]
push ecx
lea edx, [esp + 0x88]
push edx
mov byte [esp + 0x1f0], 6
call fcn.00414850
mov eax, dword [esp + 0xc0]
add esp, 0xc
cmp eax, esi
jb 0x419b93
mov eax, dword [esp + 0xa0]
push eax
call fcn.0041c5ad
add esp, 4
cmp dword [esp + 0x2c], esi
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xb0], ebx
mov byte [esp + 0xa0], bl
jb 0x419bbb
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0041c5ad
add esp, 4
mov dword [esp + 0xd0], ebp
mov dword [esp + 0xcc], ebx
mov byte [esp + 0xbc], bl
mov byte [esp + 0x1e4], 7
jmp 0x419be0
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x88]
push edx
lea ecx, [esp + 0xc4]
call fcn.004026ab
push 1
mov esi, 0xf
push 0x42c6fc
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.004027cf
push 2
push 0x42ddac
lea ecx, [esp + 0xa4]
mov byte [esp + 0x1ec], 8
mov dword [esp + 0xbc], esi
mov dword [esp + 0xb8], ebx
mov byte [esp + 0xa8], bl
call fcn.004027cf
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0xa0]
push ecx
lea edx, [esp + 0x88]
push edx
mov byte [esp + 0x1f0], 9
call fcn.00414850
mov eax, dword [esp + 0xc0]
mov edi, 0x10
add esp, 0xc
cmp eax, edi
jb 0x419c8d
mov eax, dword [esp + 0xa0]
push eax
call fcn.0041c5ad
add esp, 4
cmp dword [esp + 0x2c], edi
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb0], ebx
mov byte [esp + 0xa0], bl
mov byte [esp + 0x1e4], 7
jb 0x419cbd
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0041c5ad
add esp, 4
cmp dword [esp + 0x98], edi
mov edi, dword [esp + 0x84]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], ebx
mov byte [esp + 0x18], bl
jae 0x419ce0
lea edi, [esp + 0x84]
mov edx, dword [esp + 0xcc]
cmp edx, ebx
mov ebp, dword [esp + 0x94]
je 0x419d25
cmp edx, ebp
mov ecx, edx
jb 0x419cfa
mov ecx, ebp
cmp dword [esp + 0xd0], 0x10
mov esi, dword [esp + 0xbc]
jae 0x419d12
lea esi, [esp + 0xbc]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x419d1d
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x419be0
cmp edx, ebp
jb 0x419be0
xor eax, eax
cmp edx, ebp
setne al
cmp eax, ebx
jne 0x419be0
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
push 1
push 0x42c6fc
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1ec], 0xa
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.004027cf
push ebx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0x1f4], 0xb
call fcn.00414700
mov eax, dword [esp + 0x3c]
add esp, 0x10
cmp eax, 0x10
mov byte [esp + 0x1e4], 0xa
jb 0x419db1
mov edx, dword [esp + 0x18]
push edx
call fcn.0041c5ad
add esp, 4
push ebx
push 0x42c5d4
lea ecx, [esp + 0x88]
call fcn.004027cf
mov eax, dword [esp + 0x34]
cmp eax, ebx
je 0x419f6c
mov ecx, dword [esp + 0x38]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x10], eax
je 0x419f6c
mov ebp, eax
imul ebp, ebp, 0x1c
mov eax, dword [esp + 0x34]
mov edx, dword [eax + ebp - 8]
mov eax, edx
cmp eax, edx
jae 0x419e05
cmp edx, ebx
je 0x419e67
cmp edx, 2
mov ecx, edx
jb 0x419e15
mov ecx, 2
mov eax, dword [esp + 0x34]
cmp dword [eax + ebp - 4], 0x10
jb 0x419e26
mov esi, dword [eax + ebp - 0x18]
jmp 0x419e2a
lea esi, [eax + ebp - 0x18]
mov edi, 0x42de84
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x419e3a
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x419e67
cmp edx, 2
jb 0x419e67
xor eax, eax
cmp edx, 2
setne al
cmp eax, ebx
jne 0x419e67
mov eax, dword [esp + 0x10]
cmp eax, 1
jbe 0x419e67
mov ecx, eax
dec ecx
mov dword [esp + 0x10], ecx
sub ebp, 0x1c
jmp 0x419f58
mov eax, dword [esp + 0x34]
cmp dword [eax + ebp - 8], ebx
je 0x419f58
push 1
mov esi, 0xf
push 0x42c6fc
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.004027cf
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x14]
lea eax, [ecx + ebp - 0x1c]
push edx
push eax
lea eax, [esp + 0x6c]
push eax
mov byte [esp + 0x1f0], 0xc
call fcn.00402a92
lea ecx, [esp + 0x8c]
push ecx
push eax
lea edx, [esp + 0x58]
push edx
mov byte [esp + 0x1fc], 0xd
call fcn.00402a92
add esp, 0x18
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x8c]
mov byte [esp + 0x1f0], 0xe
call fcn.004026ab
mov eax, dword [esp + 0x5c]
mov edi, 0x10
cmp eax, edi
jb 0x419f06
mov eax, dword [esp + 0x48]
push eax
call fcn.0041c5ad
add esp, 4
cmp dword [esp + 0x7c], edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
jb 0x419f25
mov ecx, dword [esp + 0x68]
push ecx
call fcn.0041c5ad
add esp, 4
cmp dword [esp + 0x2c], edi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
mov byte [esp + 0x1e4], 0xa
jb 0x419f4c
mov edx, dword [esp + 0x18]
push edx
call fcn.0041c5ad
add esp, 4
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], ebx
mov byte [esp + 0x18], bl
mov eax, dword [esp + 0x10]
dec eax
sub ebp, 0x1c
cmp eax, ebx
mov dword [esp + 0x10], eax
ja 0x419df7
mov eax, dword [esp + 0x94]
cmp eax, ebx
jbe 0x41a006
jmp 0x419f80
cmp dword [esp + 0x98], 0x10
mov ecx, dword [esp + 0x84]
jae 0x419f98
lea ecx, [esp + 0x84]
cmp byte [eax + ecx - 1], 0x5c
jne 0x41a006
dec eax
push eax
push ebx
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x8c]
call fcn.004029c1
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x8c]
mov byte [esp + 0x1f0], 0xf
call fcn.004026ab
cmp dword [esp + 0x5c], 0x10
mov byte [esp + 0x1e4], 0xa
jb 0x419fe7
mov ecx, dword [esp + 0x48]
push ecx
call fcn.0041c5ad
add esp, 4
mov eax, dword [esp + 0x94]
cmp eax, ebx
mov dword [esp + 0x5c], 0xf
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
ja 0x419f80
lea edx, [esp + 0x80]
push edx
call fcn.00414190
mov esi, dword [esp + 0x64]
add esp, 4
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x88]
push eax
mov ecx, esi
call fcn.004026ab
mov eax, dword [esp + 0x94]
cmp eax, 2
jb 0x41a06f
cmp eax, 1
ja 0x41a049
lea ecx, [esp + 0x80]
call fcn.0041b4b1
mov eax, dword [esp + 0x98]
mov edi, 0x10
cmp eax, edi
mov eax, dword [esp + 0x84]
jae 0x41a067
lea eax, [esp + 0x84]
cmp byte [eax + 1], 0x3a
je 0x41a0cf
jmp 0x41a074
mov edi, 0x10
mov ecx, dword [esp + 0x40]
cmp dword [ecx + 0x14], ebx
jne 0x41a0cf
push ebx
push 0x42c5d4
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.004027cf
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x84]
push eax
push esi
mov byte [esp + 0x1f0], 0x10
call fcn.004198e0
mov eax, dword [esp + 0x38]
add esp, 0xc
cmp eax, edi
jb 0x41a0cf
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0041c5ad
add esp, 4
mov eax, dword [esp + 0x34]
cmp eax, ebx
je 0x41a0f9
mov edx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x34]
push ecx
push edx
push eax
call fcn.00402aec
mov eax, dword [esp + 0x44]
push eax
call fcn.0041c5ad
add esp, 0x14
cmp dword [esp + 0xd0], edi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
jb 0x41a11e
mov ecx, dword [esp + 0xbc]
push ecx
call fcn.0041c5ad
add esp, 4
cmp dword [esp + 0x98], edi
mov dword [esp + 0xd0], 0xf
mov dword [esp + 0xcc], ebx
mov byte [esp + 0xbc], bl
jb 0x41a150
mov edx, dword [esp + 0x84]
push edx
call fcn.0041c5ad
add esp, 4
mov ecx, dword [esp + 0x1dc]
pop edi
mov eax, esi
pop esi
pop ebp
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x1cc]
pop ebx
xor ecx, esp
call fcn.0041c2f6
add esp, 0x1d8
ret