Function at 0x1005ad50
Capabilities:
Get common file path

Disassembly:
sub esp, 0xb30
mov eax, dword [0x1005e060]
xor eax, esp
mov dword [esp + 0xb2c], eax
movzx eax, word [0x1005f0bc]
push ebx
push ebp
push esi
push edi
mov edi, dword [0x1005f064]
cmp eax, edi
ja 0x1005ad96
mov eax, dword [0x1005f0b8]
lea ecx, [edi + eax]
lea edx, [ecx*4 + 0x20]
sub edx, edi
mov word [0x1005f098], ax
mov dword [0x1005f0b8], edx
mov eax, dword [0x1005f090]
mov ecx, dword [esp + 0xb44]
movzx edx, byte [0x1005f068]
lea esi, [eax + ecx + 8]
lea ebx, [edx + esi + 8]
mov dword [0x10070604], 0x10060918
call fcn.10028f00
mov edx, dword [0x1005f0b8]
mov dword [0x1005f090], eax
mov ecx, 0x1005f0ca
movzx ebp, word [0x1005f09c]
cmp edx, ebp
je 0x1005aded
add word [ecx], di
sub ecx, 4
cmp ecx, 0x1005f098
lea esi, [edx + edx + 0x21]
jg 0x1005add0
movzx ecx, byte [0x1005f068]
movzx edi, word [0x1005f0bc]
lea esi, [edx + esi*2 + 0x2a]
sub ecx, esi
cmp edi, eax
lea ecx, [ebx + ecx + 0x19]
ja 0x1005ae23
lea ecx, [eax + edx + 8]
mov word [0x1005f098], dx
lea edx, [ecx*4]
sub edx, eax
mov dword [0x1005f0b8], edx
mov eax, ecx
call fcn.10028c70
movzx ecx, byte [0x1005f068]
mov dword [0x1005f090], eax
mov eax, esi
sub eax, ecx
mov ecx, dword [0x1005f0b8]
sub eax, 0x83e9
cmp word [0x1005f0ae], 0
lea esi, [esi + ecx + 0x16a31]
jne 0x1005ae60
sub eax, ecx
sub eax, 0x1b
mov dword [0x1005f090], eax
call fcn.1005aba0
movzx edx, byte [0x1005f068]
mov ebp, dword [0x1005f064]
mov eax, dword [0x1005f0b8]
mov edi, esi
sub edi, edx
movzx edx, word [0x1005f0a4]
sub edi, 0x83e9
mov ecx, 0x1005f09a
cmp eax, edx
je 0x1005aec8
movzx eax, word [ecx - 2]
movzx ebx, word [0x1005f09c]
add esi, eax
lea eax, [esi*4]
sub eax, ebp
cmp ebp, ebx
je 0x1005aec8
cmp eax, edx
je 0x1005aec8
movzx eax, word [ecx]
add esi, eax
lea eax, [esi*4]
add ecx, 4
sub eax, ebp
cmp ecx, 0x1005f0de
jl 0x1005ae8d
movzx edx, word [0x1005f0a8]
lea ecx, [esi + eax + 0x20]
movzx esi, word [0x1005f0a6]
sub esi, edx
cmp esi, 0x190
mov dword [0x1005f0b8], eax
mov dword [esp + 0x20], 0x1844ca9
jne 0x1005af00
mov edx, dword [0x1005f090]
lea edx, [edx + eax*2]
lea edi, [eax + edx + 0x32]
jmp 0x1005af19
movzx eax, word [0x1005f09a]
sub eax, dword [0x1005f090]
lea eax, [eax + eax + 0x169fb]
mov dword [0x1005f0b8], eax
mov dl, cl
add dl, 0x31
add byte [0x1005f068], dl
cmp ecx, eax
jb 0x1005af38
sub word [0x1005f0a2], bp
add ecx, 0x19
mov dword [0x1005f0b8], ecx
mov eax, edi
call fcn.10028a00
mov ecx, dword [0x1005f0b8]
mov esi, dword [0x1005f064]
lea ebx, [edi*4]
sub ebx, ecx
mov dl, bl
add dl, 0x31
mov dword [0x1005f090], eax
mov al, byte [0x1005f068]
add al, dl
movzx edx, al
sub edx, ebx
cmp ebx, ecx
lea edi, [esi + edx + 0x19]
mov byte [0x1005f068], al
mov dword [esp + 0x2c], 0xc
mov dword [esp + 0x28], 0x97
mov dword [0x1005f064], edi
jb 0x1005af9d
sub word [0x1005f0a2], di
lea ecx, [ebx + 0x19]
mov dword [0x1005f0b8], ecx
movzx edx, word [0x1005f0bc]
cmp edx, edi
mov esi, ecx
mov dword [esp + 0x24], 0xc2
mov dword [esp + 0x1c], 0
ja 0x1005afd4
lea esi, [edi + ecx + 8]
mov word [0x1005f098], cx
lea ecx, [esi*4]
sub ecx, edi
mov dword [0x1005f0b8], ecx
movzx edx, word [0x1005f0a8]
movzx ebp, word [0x1005f0a6]
sub ebp, edx
cmp ebp, 0x190
jne 0x1005b001
mov al, cl
mov dl, 3
imul dl
add al, byte [0x1005f090]
add al, 0x32
mov byte [0x1005f068], al
jmp 0x1005b01b
movzx ecx, word [0x1005f09a]
sub ecx, dword [0x1005f090]
lea ecx, [ecx + ecx + 0x169fb]
mov dword [0x1005f0b8], ecx
movzx edx, word [0x1005f0a4]
mov ebx, 0x1005f09a
cmp ecx, edx
je 0x1005b069
movzx ecx, word [ebx - 2]
movzx edx, word [0x1005f09c]
add esi, ecx
lea ecx, [esi*4]
sub ecx, edi
cmp edi, edx
je 0x1005b069
movzx edx, word [0x1005f0a4]
cmp ecx, edx
je 0x1005b069
movzx ecx, word [ebx]
add esi, ecx
lea ecx, [esi*4]
add ebx, 4
sub ecx, edi
cmp ebx, 0x1005f0de
jl 0x1005b027
mov edx, dword [0x1005f090]
lea ebx, [ecx + esi*2 + 0x2a]
movzx esi, al
cmp esi, ecx
mov dword [0x1005f0b8], ecx
mov dword [esp + 0x14], ebx
jb 0x1005b0b4
sub word [0x1005f0a2], dx
mov bl, cl
sub bl, dl
add bl, 0x19
add al, bl
mov ebx, dword [esp + 0x14]
movzx esi, al
mov edi, esi
sub edi, ecx
add edi, edx
mov ecx, edi
mov edi, dword [0x1005f064]
mov byte [0x1005f068], al
mov dword [0x1005f0b8], ecx
cmp ebp, 0x190
jne 0x1005b0c5
lea edi, [edi + ecx*2]
lea ebx, [ecx + edi + 0x32]
jmp 0x1005b0db
movzx ecx, word [0x1005f09a]
sub ecx, edi
lea ecx, [ecx + ecx + 0x169fb]
mov dword [0x1005f0b8], ecx
cmp word [0x1005f0ae], 0
lea ebx, [ebx + ecx + 0x20]
je 0x1005b0f8
mov al, cl
add al, al
add al, al
sub al, dl
mov byte [0x1005f068], al
jmp 0x1005b110
sub esi, ecx
sub esi, 0x1b
mov dword [0x1005f090], esi
jmp 0x1005b110
mov di, word [0x1005f0bc]
movzx edx, al
lea edx, [edx + ebx + 8]
mov dword [esp + 0x18], edx
movzx edx, di
cmp edx, dword [0x1005f090]
ja 0x1005b154
mov edx, dword [0x1005f090]
mov al, dl
add al, cl
mov word [0x1005f098], cx
add al, 8
movzx ecx, al
add ecx, ecx
add ecx, ecx
sub ecx, edx
mov byte [0x1005f068], al
mov dword [0x1005f0b8], ecx
cmp ebp, 0x190
lea ebx, [ecx + ebx*2 + 0x2a]
mov dword [esp + 0x14], ebx
jne 0x1005b171
lea edx, [ecx + ebx*2]
lea edx, [ebx + edx + 0x32]
mov dword [esp + 0x18], edx
jmp 0x1005b185
movzx edx, word [0x1005f09a]
sub edx, ecx
lea edx, [edx + edx + 0x169fb]
mov dword [esp + 0x14], edx
mov edx, dword [0x1005f090]
cmp dword [esp + 0x14], edx
jbe 0x1005b1ff
mov esi, dword [0x1005f064]
mov ebx, dword [esp + 0x14]
lea eax, [esi + ecx*2 + 0x32]
add ebx, eax
mov al, byte [esp + 0x18]
sub al, bl
xor edx, edx
sub al, 0x1b
cmp dword [0x1005f090], edx
mov dword [esp + 0x14], ebx
sete dl
mov byte [0x1005f068], al
test edx, edx
je 0x1005b1ed
add dl, dl
add dl, dl
sub dl, bl
mov al, dl
movzx edx, di
cmp edx, ecx
mov byte [0x1005f068], al
ja 0x1005b1ed
mov word [0x1005f098], si
add esi, ecx
lea edx, [esi*4 + 0x20]
sub edx, ecx
mov dword [0x1005f064], edx
mov edx, dword [0x1005f090]
mov esi, dword [0x1005f064]
lea ebx, [edx + esi + 8]
jmp 0x1005b203
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
lea edx, [edx + ecx + 0x20]
movzx esi, al
mov dword [esp + 0x14], edx
add edx, esi
lea edx, [ebx + edx + 0x2a]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], edx
mov ebx, edx
jae 0x1005b23f
lea edx, [esi + ebx + 8]
mov al, dl
add al, al
lea ebx, [ebx + ecx + 8]
add al, al
sub al, bl
mov byte [0x1005f068], al
jmp 0x1005b260
cmp di, 0x1433
jne 0x1005b25c
movzx edx, word [0x1005f09c]
add ecx, edx
mov dword [0x1005f0b8], ecx
mov edx, 0xffff7c17
jmp 0x1005b260
mov dl, byte [esp + 0x18]
cmp dword [esp + 0x20], 1
jb 0x1005b2f2
mov esi, 0xffffffe5
sub esi, ecx
sub dl, al
add ebx, esi
add dl, bl
mov byte [0x1005f068], dl
call fcn.10028d80
movzx eax, word [0x1005f0a8]
movzx ebp, word [0x1005f0a6]
sub ebp, eax
cmp ebp, 0x190
je 0x1005b2af
mov al, byte [0x1005f09a]
sub al, bl
sub al, 0x1b
add al, al
add al, 0x31
mov byte [0x1005f068], al
jmp 0x1005b2b4
mov al, byte [0x1005f068]
mov ecx, dword [0x1005f0b8]
sub dword [esp + 0x20], 1
mov edx, 0xffffffe5
sub edx, ecx
add ebx, edx
cmp word [0x1005f0ae], 0
jne 0x1005b110
mov edx, dword [0x1005f090]
movzx esi, al
add edx, edx
sub edx, esi
add edx, dword [0x1005f064]
lea ebx, [edx + ecx + 0x2f]
jmp 0x1005b110
cmp di, 0x1433
jne 0x1005b304
add al, byte [0x1005f09c]
mov byte [0x1005f068], al
movzx edx, al
mov esi, ebx
sub esi, edx
sub esi, 0x83e9
cmp esi, ebx
jbe 0x1005b357
add edx, ebx
lea esi, [esi + edx + 0x2a]
lea ebx, [ebx + ecx + 8]
mov dl, bl
add dl, 0x31
add al, dl
cmp word [0x1005f0ae], 0
mov byte [0x1005f068], al
je 0x1005b346
mov edx, dword [0x1005f064]
lea esi, [edx*4]
sub esi, ecx
jmp 0x1005b357
mov ecx, esi
sub ecx, dword [0x1005f064]
sub ecx, 0x1b
mov dword [0x1005f0b8], ecx
cmp word [0x1005f0ae], 0
je 0x1005b370
lea ebx, [ecx*4]
sub ebx, dword [0x1005f064]
jmp 0x1005b37d
mov edi, ebx
sub edi, ecx
sub edi, 0x1b
mov dword [0x1005f064], edi
lea edi, [ebx + ebx]
sub edi, ecx
add edi, 0x19
mov edx, ecx
sub edx, edi
mov ebp, esi
lea ebx, [esi + edx + 0x19]
movzx edx, word [0x1005f094]
sub ebp, ecx
sub ebp, 0x1b
cmp edx, dword [0x1005f064]
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], 0x1844ca9
ja 0x1005b3da
movzx dx, al
movzx eax, al
mov word [0x1005f070], dx
mov edx, dword [0x1005f064]
lea eax, [eax + edx + 8]
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x14]
add al, al
add al, al
sub al, dl
mov byte [0x1005f068], al
cmp ecx, ebp
jb 0x1005b3f1
sub ebp, ebx
sub word [0x1005f0a2], bx
lea ecx, [ecx + ebp + 0x19]
mov dword [0x1005f0b8], ecx
movzx esi, al
cmp edi, esi
jb 0x1005b418
sub word [0x1005f07a], bx
sub esi, ebx
lea edx, [edi + esi + 0x19]
mov dword [esp + 0x14], edx
mov dl, bl
sub dl, al
add dl, byte [esp + 0x14]
mov al, dl
mov byte [0x1005f068], al
mov esi, dword [esp + 0x14]
mov edx, 0x1000d910
sub edx, 0x10072030
cmp word [0x1005f094], 0x1433
lea ebx, [ebx + edx + 0x10007510]
movzx edx, al
lea edx, [edx + esi + 0x20]
mov dword [0x1005f064], edx
jne 0x1005b456
add al, byte [0x1005f074]
mov ebx, 0xffff7c17
mov byte [0x1005f068], al
add dword [esp + 0x1c], 1
mov esi, ebx
sub esi, ecx
movzx edi, al
sub esi, 0x1b
cmp ebx, edi
jb 0x1005b48c
sub edi, dword [esp + 0x14]
mov dx, word [esp + 0x14]
sub word [0x1005f0a2], dx
lea ebx, [ebx + edi + 0x19]
mov dl, bl
sub dl, al
add dl, byte [esp + 0x14]
mov al, dl
mov byte [0x1005f068], al
cmp ebx, 0x3c2
jbe 0x1005b4c2
movzx edi, al
lea ebx, [esi + ecx + 8]
cmp ebx, edi
jb 0x1005b4c2
sub edi, dword [esp + 0x14]
mov dx, word [esp + 0x14]
sub word [0x1005f0a2], dx
lea ebx, [ebx + edi + 0x19]
mov dl, bl
sub dl, al
add dl, byte [esp + 0x14]
mov al, dl
mov byte [0x1005f068], al
movzx edi, word [0x1005f0ae]
test edi, edi
je 0x1005b4dc
mov edx, dword [esp + 0x14]
lea ebx, [edx*4]
sub ebx, ecx
jmp 0x1005b4eb
mov ecx, ebx
sub ecx, dword [esp + 0x14]
sub ecx, 0x1b
mov dword [0x1005f0b8], ecx
cmp dword [esp + 0x1c], 0x3e
jge 0x1005b58c
sub ebx, ecx
sub ebx, 0x1b
test edi, edi
mov dword [0x1005f090], ebx
je 0x1005b516
movzx eax, al
add eax, eax
add eax, eax
sub eax, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
jmp 0x1005b526
movzx ecx, al
mov eax, dword [esp + 0x14]
sub eax, ecx
sub eax, 0x1b
mov dword [esp + 0x1c], eax
push 0x583
lea edx, [esp + 0x34]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov eax, dword [0x1005f090]
mov ecx, dword [0x1005f0b8]
movzx edx, word [0x1005f0a8]
lea esi, [eax + ecx + 0x16a31]
movzx eax, word [0x1005f0a6]
sub eax, edx
cmp eax, 0x190
jne 0x1005b578
mov al, byte [0x1005f068]
mov edi, dword [esp + 0x1c]
movzx edx, al
lea edi, [edi + edx*2]
lea edx, [edx + edi + 0x32]
mov dword [esp + 0x14], edx
jmp 0x1005b58c
mov al, byte [0x1005f09a]
sub al, byte [esp + 0x1c]
sub al, 0x1b
add al, al
add al, 0x31
mov byte [0x1005f068], al
cmp dword [esp + 0x28], 9
lea ebx, [esi + ecx + 0x20]
jae 0x1005b5a0
sub dword [esp + 0x28], 1
lea ebx, [esi + ecx + 8]
movzx edx, word [0x1005f0a8]
movzx ebp, word [0x1005f0a6]
lea esi, [ebx*4]
sub ebp, edx
mov edx, dword [esp + 0x14]
sub esi, ecx
cmp ebp, 0x190
mov dword [0x1005f090], esi
jne 0x1005b5d7
movzx ebx, al
lea edi, [edx + ebx*2]
lea ebx, [ebx + edi + 0x32]
jmp 0x1005b5eb
mov al, byte [0x1005f09a]
sub al, byte [esp + 0x14]
sub al, 0x1b
add al, al
add al, 0x31
mov byte [0x1005f068], al
cmp ebp, 0x190
jne 0x1005b5fc
lea edi, [ecx + edx*2]
lea ebx, [edx + edi + 0x32]
jmp 0x1005b610
movzx edx, word [0x1005f09a]
sub edx, ecx
lea edx, [edx + edx + 0x169fb]
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x24]
sub edi, esi
sub edi, 0x83e9
cmp esi, 0x132f3
mov dword [0x1005f064], edi
jbe 0x1005b6ea
lea edx, [esi + ecx]
lea edx, [ebx + edx + 0x2a]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
cmp edi, edx
jne 0x1005b6c5
cmp ebp, 0x190
je 0x1005b65f
mov al, byte [0x1005f09a]
sub al, dl
sub al, 0x1b
add al, al
add al, 0x31
mov byte [0x1005f068], al
mov ebx, esi
call fcn.10028f00
movzx ecx, word [0x1005f0a6]
mov esi, dword [0x1005f090]
mov dword [esp + 0x18], eax
movzx eax, word [0x1005f0a8]
sub ecx, eax
cmp ecx, 0x190
jne 0x1005b6a3
mov eax, dword [esp + 0x14]
lea edx, [eax + eax*2]
mov al, byte [0x1005f068]
movzx ecx, al
lea ecx, [edx + ecx + 0x32]
mov dword [0x1005f0b8], ecx
jmp 0x1005b6c5
mov al, byte [0x1005f068]
movzx edx, word [0x1005f09a]
movzx ecx, al
sub edx, ecx
mov ecx, dword [0x1005f0b8]
lea edx, [edx + edx + 0x169fb]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
cmp ebx, edx
jb 0x1005b6ea
sub word [0x1005f0a2], cx
sub edx, ecx
lea ebx, [ebx + edx + 0x19]
mov edx, ecx
sub edx, dword [esp + 0x14]
add edx, ebx
mov dword [esp + 0x14], edx
cmp dword [esp + 0x24], 0xf
jae 0x1005b75d
cmp ebx, esi
jb 0x1005b712
sub word [0x1005f0a2], cx
mov edx, esi
sub edx, ecx
lea ebx, [ebx + edx + 0x19]
mov edx, ecx
sub edx, esi
add edx, ebx
mov esi, edx
mov dword [0x1005f090], esi
cmp word [0x1005f0ae], 0
je 0x1005b72d
lea edx, [ecx*4]
sub edx, ebx
mov dword [0x1005f064], edx
jmp 0x1005b734
sub edi, ecx
sub edi, 0x1b
mov ebx, edi
sub dword [esp + 0x24], 1
cmp word [0x1005f0bc], 0x1433
jne 0x1005b75d
movzx edx, word [0x1005f09c]
add esi, edx
mov dword [0x1005f090], esi
mov dword [0x1005f064], 0xffff7c17
movzx edx, word [0x1005f0bc]
cmp edx, esi
ja 0x1005b782
lea ebx, [esi + ecx + 8]
mov word [0x1005f098], cx
lea ecx, [ebx*4]
sub ecx, esi
mov dword [0x1005f0b8], ecx
cmp edx, ecx
ja 0x1005b795
mov edx, dword [esp + 0x14]
mov word [0x1005f098], dx
lea ebx, [ecx + edx + 8]
mov edi, dword [esp + 0x20]
test edi, edi
jbe 0x1005b87f
lea edx, [ecx*4]
sub edx, edi
mov dword [0x1005f064], edx
call fcn.10028d80
movzx ebp, word [0x1005f0bc]
mov eax, dword [0x1005f090]
cmp ebp, eax
mov ecx, dword [0x1005f0b8]
ja 0x1005b7dd
mov word [0x1005f098], cx
add ecx, eax
lea ecx, [ecx*4 + 0x20]
sub ecx, eax
mov edx, dword [esp + 0x2c]
sub edi, 1
mov dword [esp + 0x20], edi
mov edi, dword [0x1005f064]
lea esi, [edi*4]
sub esi, edx
cmp edx, 7
mov dword [esp + 0x14], esi
jae 0x1005b841
cmp ebp, ecx
ja 0x1005b817
lea ebx, [eax + ecx + 8]
mov word [0x1005f098], ax
lea eax, [ebx*4]
sub eax, ecx
sub edx, 1
add eax, edx
lea ecx, [edi + eax + 0x2a]
mov dword [esp + 0x2c], edx
mov dword [0x1005f064], ecx
mov al, byte [0x1005f068]
mov ecx, 0xffff7c1a
sub ecx, esi
mov dword [0x1005f0b8], ecx
jmp 0x1005b456
mov ecx, dword [esp + 0x24]
cmp ebp, ecx
ja 0x1005b82a
mov al, byte [0x1005f068]
movzx dx, al
movzx eax, al
lea ebx, [eax + ecx + 8]
mov al, bl
add al, al
add al, al
sub al, cl
mov ecx, 0xffff7c1a
sub ecx, esi
mov word [0x1005f098], dx
mov byte [0x1005f068], al
mov dword [0x1005f0b8], ecx
jmp 0x1005b456
lea edi, [esi + ecx + 8]
mov ecx, dword [esp + 0xb44]
sub esi, ecx
sub esi, 0x1b
sub ecx, esi
sub ecx, 0x83e9
mov edx, ecx
lea ecx, [edi*4]
sub ecx, esi
movzx esi, al
cmp esi, ecx
jb 0x1005b8c7
sub word [0x1005f0a2], dx
mov bl, cl
sub bl, dl
add bl, 0x19
add al, bl
mov byte [0x1005f068], al
movzx eax, al
sub eax, ecx
add eax, edx
mov ecx, eax
sub edi, ecx
add edi, 0x7b0
mov ebx, 0xfffe0a1b
sub ebx, edi
cmp word [0x1005f0ae], 0
mov dword [0x1005f0b8], edi
mov dword [0x1005f090], 0xfffe0a36
je 0x1005b8f9
lea ebx, [edi*4 + 0x1f5ca]
jmp 0x1005b906
mov ecx, ebx
sub ecx, edi
sub ecx, 0x1b
mov dword [0x1005f090], ecx
mov eax, edi
call fcn.1005a330
mov dl, byte [0x1005f064]
sub dl, bl
sub dl, 0x1b
mov dword [0x1005f0b8], eax
mov byte [0x1005f068], dl
sbb al, byte [edx + 0x1e]
int 0xf
mov bh, 0x2d
movsb byte es:[edi], byte [esi]
invalid