Function at 0x43bf80
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x254
mov eax, dword [0x76e440]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 8]
xor al, al
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x24c], edx
mov dword [ebp - 0x23c], 0
push esi
mov esi, dword [ebp + 0x10]
mov dword [esi + 0x38], 0xffffffff
mov dword [esi + 0x134], 0xd
cmp ecx, 1
je 0x43c852
push edi
mov edi, 1
mov byte [ebp - 0x229], al
mov dword [ebp - 0x240], edi
jle 0x43c69f
lea eax, [edx + 0x10]
mov dword [ebp - 0x230], 2
push ebx
mov dword [ebp - 0x234], eax
lea ebx, [edx + 8]
lea eax, [edx + 0xc]
mov dword [ebp - 0x250], ebx
mov dword [ebp - 0x238], eax
push dword [edx + edi*4]
call fcn.0043c940
push eax
mov dword [ebp - 0x254], eax
call fcn.0043bac0
add esp, 8
mov dword [ebp - 0x248], eax
test eax, eax
je 0x43c0ca
mov ecx, dword [eax + 0x10]
or dword [esi + 4], ecx
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x43c05f
cmp dword [esi], 1
je 0x43c05f
push ecx
push esi
call fcn.0043ce70
add esp, 8
test al, al
mov eax, dword [ebp - 0x248]
jne 0x43c05f
mov dword [esi], 1
mov byte [ebp - 0x229], 1
mov eax, dword [eax + 8]
test eax, eax
jle 0x43c0ca
mov edi, 1
cmp eax, edi
jl 0x43c0c4
mov ecx, ebx
mov dword [ebp - 0x244], ebx
mov ebx, dword [ebp - 0x240]
lea ecx, [ecx]
lea eax, [edi + ebx]
cmp dword [ebp + 8], eax
jle 0x43c09c
push dword [ecx]
call fcn.0043c940
mov ecx, dword [ebp - 0x244]
add esp, 4
test eax, eax
je 0x43c0a9
mov dword [esi], 1
mov byte [ebp - 0x229], 1
mov eax, dword [ebp - 0x248]
inc edi
add ecx, 4
mov dword [ebp - 0x244], ecx
cmp edi, dword [eax + 8]
jle 0x43c080
mov ebx, dword [ebp - 0x250]
mov edi, dword [ebp - 0x240]
mov cl, byte [ebp - 0x229]
test cl, cl
jne case.0x43c0ee.2
mov eax, dword [ebp - 0x254]
cmp eax, 0x30
ja case.0x43c0ee.2
movzx eax, byte [eax + 0x43c8d4]
jmp dword [eax*4 + 0x43c864]
push 0xa
lea eax, [ebp - 0x23c]
push eax
push dword [ebx]
call fcn.005efa58
add esp, 0xc
mov dword [esi + 0x134], eax
test eax, eax
jne 0x43c144
push dword [ebx]
lea eax, [ebp - 0x120]
push eax
call fcn.00450980
add esp, 8
lea ecx, [esi + 0xa0]
push eax
call fcn.0040d310
lea ecx, [ebp - 0x120]
call fcn.00402bf0
mov dword [esi + 0x134], 0xd
mov ecx, dword [ebp - 0x234]
inc edi
mov eax, dword [ebp - 0x230]
add ecx, 4
add dword [ebp - 0x238], 4
inc eax
mov dword [ebp - 0x234], ecx
add ebx, 4
mov cl, byte [ebp - 0x229]
jmp 0x43c64e
push dword [ebx]
lea eax, [ebp - 0x138]
push eax
call fcn.00450980
add esp, 8
lea ecx, [esi + 0x40]
push eax
call fcn.0040d310
lea ecx, [ebp - 0x138]
call fcn.00402bf0
jmp 0x43c144
push dword [ebx]
lea eax, [ebp - 0x150]
push eax
call fcn.00450980
add esp, 8
lea ecx, [esi + 0x58]
push eax
call fcn.0040d310
lea ecx, [ebp - 0x150]
call fcn.00402bf0
jmp 0x43c144
mov eax, dword [ebp - 0x230]
cmp eax, dword [ebp + 8]
jge 0x43c64e
push dword [ebx]
call fcn.0043c940
add esp, 4
test eax, eax
jne 0x43c642
push dword [ebx]
lea eax, [ebp - 0x1b0]
push eax
call fcn.00450980
add esp, 8
lea ecx, [esi + 0x20]
push eax
call fcn.0040d310
lea ecx, [ebp - 0x1b0]
call fcn.00402bf0
jmp 0x43c144
push dword [ebx]
lea eax, [ebp - 0x210]
push eax
call fcn.00450980
add esp, 8
lea ecx, [esi + 0x118]
push eax
call fcn.0040d310
lea ecx, [ebp - 0x210]
call fcn.00402bf0
jmp 0x43c144
mov byte [esi + 0x154], 1
jmp case.0x43c0ee.2
push dword [ebx]
lea eax, [ebp - 0x180]
push eax
call fcn.00450980
add esp, 8
lea ecx, [esi + 0x100]
push eax
call fcn.0040d310
lea ecx, [ebp - 0x180]
call fcn.00402bf0
jmp 0x43c144
mov eax, dword [ebp - 0x230]
cmp eax, dword [ebp + 8]
jge 0x43c64e
push dword [ebx]
call fcn.0043c940
add esp, 4
test eax, eax
jne 0x43c642
push dword [ebx]
call fcn.00417b20
add esp, 4
mov dword [esi + 0x38], eax
jmp 0x43c144
push dword [ebx]
lea eax, [ebp - 0x168]
push eax
call fcn.00450980
add esp, 8
lea ecx, [esi + 0xe8]
push eax
call fcn.0040d310
lea ecx, [ebp - 0x168]
call fcn.00402bf0
push 0x10
lea eax, [ebp - 0x23c]
push eax
push dword [ebx]
call fcn.005efa58
mov dword [esi + 0x14c], eax
add esp, 0xc
mov eax, dword [ebp - 0x23c]
cmp byte [eax], 0
jne 0x43c313
push 2
push esi
call fcn.0043ce70
add esp, 8
test al, al
jne 0x43c30a
mov cl, 1
mov byte [ebp - 0x229], cl
jmp case.0x43c0ee.2
or dword [esi + 4], 0x10
jmp 0x43c144
push 0xe
push esi
call fcn.0043ce70
add esp, 8
test al, al
jne 0x43c144
mov cl, 1
mov byte [ebp - 0x229], cl
jmp case.0x43c0ee.2
push 0xa
lea eax, [ebp - 0x23c]
push eax
push dword [ebx]
call fcn.005efa58
add esp, 0xc
mov dword [esi + 0x3c], eax
jmp 0x43c144
push dword [ebx]
lea eax, [ebp - 0x1c8]
push eax
call fcn.00450980
add esp, 8
lea ecx, [esi + 0x70]
push eax
call fcn.0040d310
lea ecx, [ebp - 0x1c8]
call fcn.00402bf0
jmp 0x43c144
push dword [ebx]
lea eax, [ebp - 0x1f8]
push eax
call fcn.00450980
add esp, 8
lea ecx, [esi + 0x88]
push eax
call fcn.0040d310
lea ecx, [ebp - 0x1f8]
call fcn.00402bf0
jmp 0x43c144
push 0xa
lea eax, [ebp - 0x23c]
push eax
push dword [ebx]
call fcn.005efa58
add esp, 0xc
mov dword [esi + 0x150], eax
jmp 0x43c144
mov eax, dword [ebp - 0x230]
cmp eax, dword [ebp + 8]
jge 0x43c64e
push dword [ebx]
call fcn.0043c940
add esp, 4
test eax, eax
jne 0x43c642
push dword [ebx]
lea eax, [ebp - 0x228]
push eax
call fcn.00450980
add esp, 8
lea ecx, [esi + 0xb8]
push eax
call fcn.0040d310
lea ecx, [ebp - 0x228]
call fcn.00402bf0
jmp 0x43c144
mov eax, dword [ebp + 8]
cmp dword [ebp - 0x230], eax
jge 0x43c457
push dword [ebx]
call fcn.0043c940
add esp, 4
test eax, eax
jne 0x43c457
push dword [ebx]
lea eax, [ebp - 0x1e0]
push eax
call fcn.00450980
add esp, 8
lea ecx, [esi + 0xd0]
push eax
call fcn.0040d310
lea ecx, [ebp - 0x1e0]
call fcn.00402bf0
jmp 0x43c144
push 0x67b4f4
lea ecx, [esi + 0xd0]
call fcn.0040f970
jmp 0x43c642
mov eax, dword [ebp - 0x230]
cmp eax, dword [ebp + 8]
jge 0x43c64e
push dword [ebx]
call fcn.0043c940
add esp, 4
test eax, eax
jne 0x43c642
push 0xa
lea eax, [ebp - 0x23c]
push eax
push dword [ebx]
call fcn.005efa58
mov ecx, dword [ebp - 0x23c]
add esp, 0xc
mov dword [esi + 0x130], eax
cmp byte [ecx], 0
jne 0x43c642
inc eax
mov dword [esi + 0x130], eax
jmp 0x43c144
or dword [esi + 0x138], 1
jmp case.0x43c0ee.2
or dword [esi + 0x138], 2
jmp case.0x43c0ee.2
push 0xa
lea eax, [ebp - 0x23c]
push eax
push dword [ebx]
call fcn.005efa58
add esp, 0xc
mov dword [esi + 0x13c], eax
jmp 0x43c144
or dword [esi + 0x138], 4
jmp case.0x43c0ee.2
push 0xa
lea eax, [ebp - 0x23c]
push eax
push dword [ebx]
call fcn.005efa58
add esp, 0xc
mov dword [esi + 0x140], eax
or dword [esi + 0x138], 8
jmp 0x43c144
push 0xa
lea eax, [ebp - 0x23c]
push eax
push dword [ebx]
call fcn.005efa58
add esp, 0xc
mov dword [esi + 0x144], eax
or dword [esi + 0x138], 0x10
jmp 0x43c144
push 0xa
lea eax, [ebp - 0x23c]
push eax
push dword [ebx]
call fcn.005efa58
mov ecx, dword [ebp - 0x238]
mov dword [esi + 0x148], eax
lea eax, [ebp - 0x23c]
push 0xa
push eax
push dword [ecx]
call fcn.005efa58
add esp, 0x18
mov dword [esi + 0x158], eax
cmp eax, 2
jle 0x43c594
mov cl, 1
mov byte [ebp - 0x229], cl
jmp case.0x43c0ee.2
mov ecx, dword [ebp - 0x234]
lea eax, [ebp - 0x23c]
push 0xa
push eax
push dword [ecx]
call fcn.005efa58
add esp, 0xc
mov dword [esi + 0x15c], eax
cmp eax, 2
mov eax, dword [ebp - 0x230]
jle 0x43c5cb
mov cl, 1
mov byte [ebp - 0x229], cl
jmp 0x43c64e
or dword [esi + 0x138], 0x80
add edi, 3
add dword [ebp - 0x238], 0xc
add eax, 3
add dword [ebp - 0x234], 0xc
add ebx, 0xc
mov cl, byte [ebp - 0x229]
jmp 0x43c64e
or dword [esi + 0x138], 0x20
jmp case.0x43c0ee.2
or dword [esi + 0x138], 0x40
jmp case.0x43c0ee.2
cmp dword [esi + 0x18], 0
je 0x43c616
mov cl, 1
mov byte [ebp - 0x229], cl
jmp case.0x43c0ee.2
mov eax, dword [ebp - 0x24c]
push dword [eax + edi*4]
lea eax, [ebp - 0x198]
push eax
call fcn.00450980
add esp, 8
lea ecx, [esi + 8]
push eax
call fcn.0040d310
lea ecx, [ebp - 0x198]
call fcn.00402bf0
mov cl, byte [ebp - 0x229]
mov eax, dword [ebp - 0x230]
add dword [ebp - 0x238], 4
inc edi
add dword [ebp - 0x234], 4
inc eax
mov edx, dword [ebp - 0x24c]
add ebx, 4
mov dword [ebp - 0x240], edi
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x250], ebx
cmp edi, dword [ebp + 8]
jl 0x43c007
pop ebx
test cl, cl
je 0x43c69f
pop edi
mov dword [esi], 1
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005ed4e7
mov esp, ebp
pop ebp
ret
cmp dword [esi], 0
jne 0x43c6db
test dword [esi + 4], 0x20000
je 0x43c6b3
mov dword [esi], 0xf
cmp dword [esi], 0
jne 0x43c6db
mov eax, dword [esi + 4]
test eax, 0x100000
je 0x43c6d0
or eax, 0x14000
mov dword [esi], 0x12
mov dword [esi + 4], eax
cmp dword [esi], 0
jne 0x43c6db
mov dword [esi], 2
cmp dword [esi + 0x68], 0
jne 0x43c735
mov eax, dword [esi]
cmp eax, 4
je 0x43c735
cmp eax, 0x12
je 0x43c735
lea eax, [ebp - 0x108]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x120]
push eax
call fcn.00450980
add esp, 8
lea ecx, [esi + 0x58]
push eax
call fcn.0040d310
cmp dword [ebp - 0x10c], 8
jb 0x43c735
push dword [ebp - 0x120]
call fcn.00452732
add esp, 4
mov ecx, dword [esi + 4]
test ecx, 0x40000
je 0x43c74a
cmp dword [esi + 0x50], 0
je 0x43c819
test ecx, 0x80000
je 0x43c75c
cmp dword [esi + 0x68], 0
je 0x43c819
mov eax, dword [esi]
add eax, 0xfffffffe
cmp eax, 0x10
ja case.0x43c771.3
movzx eax, byte [eax + 0x43c920]
jmp dword [eax*4 + 0x43c908]
mov eax, ecx
and eax, 2
jne 0x43c78d
test cl, 1
jne 0x43c78d
cmp dword [esi + 0x18], eax
je 0x43c819
mov edx, ecx
and edx, 1
je 0x43c79e
test eax, eax
je 0x43c79e
cmp dword [esi + 0x38], 0xffffffff
je 0x43c819
test cl, 0x10
je case.0x43c771.3
test edx, edx
jne 0x43c819
test eax, eax
je case.0x43c771.3
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005ed4e7
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x3c], 0
jne case.0x43c771.3
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005ed4e7
mov esp, ebp
pop ebp
ret
test cl, 0xc0
jne case.0x43c771.3
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005ed4e7
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x138]
mov ecx, eax
and ecx, 1
je 0x43c809
test al, 2
jne 0x43c819
test ecx, ecx
je 0x43c811
test al, 0x1c
jne 0x43c819
test al, 2
je case.0x43c771.3
test al, 0xc0
je case.0x43c771.3
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005ed4e7
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x30]
test eax, eax
je 0x43c83c
cmp dword [esi + 0x68], 0
je 0x43c819
test eax, eax
jne 0x43c842
cmp dword [esi + 0x68], 0
jne 0x43c819
cmp dword [esi + 0x128], 0
je case.0x43c771.3
test eax, eax
je 0x43c819
mov al, 1
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.005ed4e7
mov esp, ebp
pop ebp
ret