Function at 0x41a650
Capabilities:
Get common file path

Disassembly:
movzx eax, byte [0x487008]
mov edx, dword [esp + 4]
sub esp, 0x20
push ebx
push esi
movzx esi, byte [0x48705b]
push edi
movzx edi, byte [0x487060]
add esi, edi
cmp esi, 0x37c
lea ecx, [eax + edx - 2]
je 0x41a690
mov dl, byte [0x487068]
add dl, 0x3f
add byte [0x487061], dl
mov edx, dword [esp + 0x30]
cmp dword [0x487058], edx
ja 0x41a6a6
sub dl, 0x1f
add byte [0x487008], dl
mov dword [0x487010], eax
movzx esi, byte [0x487058]
mov ebx, dword [0x487004]
mov dl, byte [0x48705a]
mov eax, 3
mov edi, edi
cmp ebx, esi
je 0x41a6d3
movzx edi, dl
cmp ebx, edi
je 0x41a6d3
add eax, 2
cmp eax, 0x17
jl 0x41a6c0
mov eax, dword [esp + 0x30]
add eax, 0x87ae6
mov dl, cl
sub dl, al
add byte [0x487008], dl
push ecx
mov dword [0x52ddcc], 0x494d40
mov dword [esp + 0x18], eax
call fcn.0041a0e0
movzx eax, byte [0x48705b]
movzx ecx, byte [0x487060]
add eax, ecx
add esp, 4
cmp eax, 0x37c
jne 0x41a724
mov edx, dword [0x487068]
mov eax, dword [esp + 0x14]
lea eax, [edx + eax + 0x51]
jmp 0x41a738
add bl, byte [0x487068]
mov eax, 0x70af
sub bl, 0x18
add byte [0x487061], bl
movzx esi, byte [0x487008]
movzx ecx, byte [0x487069]
imul esi, esi, 0x5a
mov edi, 0xffffffe7
sub edi, eax
add esi, edi
cmp ecx, 0x5cd
mov dword [0x487068], eax
jne 0x41a771
movzx edx, byte [0x487062]
add eax, edx
mov dword [0x487068], eax
lea esi, [esi + eax*2 - 0x18]
push esi
call fcn.0041a0e0
movzx eax, ax
push 0x2895
push 0x42d258
movzx ecx, ax
push 0x494d40
push ecx
push esi
mov dword [esp + 0x28], eax
call fcn.0041be10
movzx edx, byte [0x487008]
mov ecx, dword [0x487068]
lea eax, [edx + edi - 2]
movzx edx, byte [0x487069]
add esp, 0x18
cmp edx, 0x5cd
lea esi, [ecx + edi*2 - 0x18]
mov dword [esp + 0x18], 0x206a59d
jne 0x41a7d9
movzx edx, byte [0x487062]
add ecx, edx
mov dword [0x487068], ecx
lea esi, [esi + ecx*2 - 0x18]
push eax
call fcn.0041a360
mov dl, byte [0x487008]
movzx eax, ax
movzx edi, dl
mov dword [esp + 0x14], eax
mov eax, dword [0x487004]
lea ecx, [edi + esi]
lea ebx, [eax + ecx - 0x18]
mov ecx, dword [0x487068]
lea eax, [esi + ecx + 0x51]
add esp, 4
cmp eax, ecx
mov dword [esp + 0x28], 0xa
mov dword [0x487004], ebx
mov dword [esp + 0x24], 0x9a
mov dword [esp + 0x20], 0xa3
mov dword [esp + 0x1c], 0
jb 0x41a850
sub eax, ebx
add ecx, eax
mov al, bl
imul byte [0x487067]
mov byte [0x487067], al
mov eax, ecx
imul eax, eax, 0x5a
mov dword [0x487068], ecx
add eax, ebx
lea esi, [eax + eax]
movzx ax, byte [0x48706a]
push ebp
mov bp, word [esp + 0x14]
sub esi, ecx
cmp ax, bp
mov word [esp + 0x10], ax
ja 0x41a880
movzx eax, bp
sub eax, edi
mov byte [0x487058], cl
add ecx, eax
mov dword [0x487068], ecx
movzx eax, byte [0x48706a]
lea esi, [esi + esi*2]
sub esi, ecx
cmp eax, ebx
ja 0x41a8a0
sub ebx, esi
mov byte [0x487058], cl
add ecx, ebx
mov dword [0x487068], ecx
lea eax, [esi + esi]
sub eax, ecx
cmp word [esp + 0x10], bp
mov dword [esp + 0x18], eax
ja 0x41a8c3
movzx eax, bp
sub eax, edi
mov byte [0x487058], cl
add ecx, eax
mov dword [0x487068], ecx
mov edi, dword [0x487004]
lea esp, [esp]
movzx esi, dl
imul esi, esi, 0x5a
add esi, dword [esp + 0x18]
cmp byte [0x487068], 6
mov dword [esp + 0x10], esi
je 0x41a8f5
mov dl, 3
mov al, cl
imul dl
mov dl, al
sub dl, byte [esp + 0x14]
jmp 0x41a90a
movzx ax, dl
imul ax, ax, 3
sub ax, cx
movzx eax, ax
mov dword [esp + 0x14], eax
mov bp, ax
mov ebx, 0xffffffe7
sub ebx, ecx
cmp byte [0x487068], 6
je 0x41a925
lea eax, [ebx + ebx*2]
sub eax, ecx
mov dword [esp + 0x10], eax
jmp 0x41a930
lea ecx, [esi + esi*2]
sub ecx, ebx
mov dword [0x487068], ecx
movzx eax, bp
cmp ebx, eax
jbe 0x41a98c
mov eax, ecx
sub eax, edi
add eax, 0x70af
mov edi, eax
xor eax, eax
test bp, bp
sete al
mov dword [0x487004], edi
mov esi, eax
test esi, esi
je 0x41a97f
mov al, bl
sub al, dl
sub al, 0x51
mov dl, al
movzx eax, byte [0x487069]
cmp eax, 0x5cd
jne 0x41a97f
movzx eax, byte [0x487062]
add edi, eax
mov dword [0x487004], edi
lea esi, [esi + edi*2 - 0x18]
movzx eax, bp
add eax, edi
lea eax, [esi + eax - 0x18]
mov dword [esp + 0x10], eax
mov eax, ecx
sub eax, ebx
mov bl, byte [esp + 0x10]
add eax, 0x70af
sub bl, al
add dl, bl
cmp dword [esp + 0x10], eax
mov dword [esp + 0x18], eax
mov byte [0x487008], dl
jae 0x41a9d6
mov bl, byte [esp + 0x10]
mov esi, ecx
sub esi, eax
sub bl, al
add esi, 0x70af
add dl, bl
mov eax, esi
mov bl, al
sub bl, dl
sub bl, 0x51
mov dl, bl
mov dword [esp + 0x18], eax
mov byte [0x487008], dl
jmp 0x41aa00
cmp byte [0x487068], 6
je 0x41a9ed
movzx esi, bp
lea ebx, [ecx + ecx*2]
sub ebx, esi
mov dword [esp + 0x10], ebx
jmp 0x41aa04
mov esi, dword [esp + 0x10]
lea esi, [esi + esi*2]
sub esi, ecx
movzx esi, si
mov dword [esp + 0x14], esi
mov bp, si
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x1c], 1
jb 0x41aa96
imul eax, eax, 0x5a
add eax, ecx
movzx ecx, dl
mov ebx, eax
lea edx, [ecx + ebx - 2]
mov dword [esp + 0x10], edx
call fcn.0041bc50
movzx eax, byte [0x48706a]
cmp eax, ebx
mov dl, byte [0x487008]
ja 0x41aa45
mov cl, bl
sub cl, byte [esp + 0x10]
mov byte [0x487058], dl
add dl, cl
mov edi, dword [0x487004]
mov ecx, dword [0x487068]
sub dword [esp + 0x1c], 1
movzx eax, bp
imul eax, eax, 0x5a
add eax, edi
lea esi, [ecx + eax + 0x51]
movzx esi, si
mov dword [esp + 0x14], esi
mov bp, word [esp + 0x14]
movzx esi, dl
cmp eax, esi
lea ebx, [ebx + ecx + 0x51]
mov dword [esp + 0x18], ebx
jb 0x41a8d0
sub al, bl
add dl, al
mov al, byte [0x487067]
imul bl
mov byte [0x487067], al
jmp 0x41a8d0
movzx esi, byte [0x48706a]
cmp esi, eax
ja 0x41aaa7
mov byte [0x487058], dl
mov dl, bl
add dl, al
mov eax, dword [esp + 0x18]
add dl, 0x51
cmp dword [esp + 0x10], eax
mov byte [0x487008], dl
jbe 0x41aade
cmp byte [0x487068], 6
lea esi, [eax + ecx + 0x51]
jne 0x41aae7
movzx eax, dl
imul eax, eax, 0x5a
add eax, esi
lea ecx, [eax + eax*2]
sub ecx, dword [0x487004]
jmp 0x41aaf6
cmp byte [0x487068], 6
je 0x41aaf2
lea esi, [ecx + ecx*2]
sub esi, dword [0x487004]
jmp 0x41ab00
mov esi, dword [esp + 0x18]
lea eax, [esi + esi*2]
sub eax, ecx
mov dword [0x487004], eax
mov ebx, ecx
sub ebx, esi
mov esi, dword [0x487004]
movzx edi, bp
add ebx, 0x70af
lea eax, [edi + ebx]
lea ecx, [ecx + eax + 0x4f]
mov dword [esp + 0x1c], 0x206a59d
mov dword [0x487068], ecx
movzx ebp, dl
mov eax, 0x4870c0
cmp ebp, dword [0x487038]
je 0x41ab49
sub dword [eax], esi
sub eax, 8
cmp eax, 0x48701c
mov ebx, 0xffffffe5
jg 0x41ab30
mov esi, ebp
imul esi, esi, 0x5a
add esi, ebx
cmp ecx, edi
mov dword [esp + 0x10], esi
jb 0x41ab80
mov al, byte [0x487067]
mov edx, esi
sub ecx, edx
imul dl
add ecx, dword [esp + 0x14]
mov byte [0x487067], al
movzx ecx, cx
imul ecx, ecx, 0x5a
add ecx, edx
mov dl, byte [0x487008]
mov dword [0x487068], ecx
mov eax, dword [esp + 0x10]
cmp dword [0x487058], eax
ja 0x41ab9c
sub al, bl
add dl, al
mov dword [0x487010], ebp
mov byte [0x487008], dl
mov esi, dword [esp + 0x10]
mov eax, 0x483860
sub eax, 0x52f488
lea eax, [esi + eax + 0x42d258]
mov dword [esp + 0x10], eax
mov eax, dword [0x487004]
movzx esi, dl
lea eax, [eax + eax + 0xb23c]
sub eax, esi
add eax, ebx
mov dword [0x487004], eax
movzx eax, dl
cmp dword [esp + 0x10], eax
jb 0x41abfd
mov al, byte [esp + 0x10]
sub al, bl
add dl, al
mov eax, dword [0x48704c]
imul eax, ebx
mov dword [0x48704c], eax
movzx eax, dl
imul eax, eax, 0x5a
add eax, ebx
mov byte [0x487008], dl
mov dword [esp + 0x10], eax
add dword [esp + 0x20], 1
cmp byte [0x487068], 6
mov edi, dword [esp + 0x28]
movzx eax, dl
je 0x41ac1d
lea esi, [eax + eax*2]
sub esi, ebx
mov dword [esp + 0x10], esi
jmp 0x41ac26
mov esi, dword [esp + 0x10]
lea ebx, [esi + esi*2]
sub ebx, eax
cmp esi, 0x2c37
jbe 0x41ac60
movzx eax, dl
cmp dword [esp + 0x10], eax
jb 0x41ac60
movzx eax, byte [esp + 0x10]
sub al, bl
add dl, al
movzx eax, byte [0x487067]
imul bl
mov byte [0x487067], al
movzx eax, dl
imul eax, eax, 0x5a
add eax, ebx
mov byte [0x487008], dl
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], ebx
jb 0x41ac8c
mov edx, dword [esp + 0x10]
mov al, cl
imul byte [0x487067]
sub edx, ecx
add ebx, edx
mov dl, byte [0x487008]
mov byte [0x487067], al
mov eax, ebx
imul eax, eax, 0x5a
add eax, ecx
mov dword [esp + 0x10], eax
cmp dword [esp + 0x20], 0x36
jge 0x41acff
movzx ecx, byte [0x487069]
cmp ecx, 0x5cd
jne 0x41acb5
add dl, byte [0x487062]
mov byte [0x487008], dl
movzx edx, dl
lea ebx, [ebx + edx*2 - 0x18]
push 0x46e
push 0x494100
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov dl, byte [0x487008]
mov dword [esp + 0x10], eax
movzx eax, dl
cmp ebx, eax
jb 0x41acf9
mov ecx, dword [esp + 0x20]
sub bl, cl
add dl, bl
movzx ebx, dl
mov al, cl
imul ebx, ebx, 0x5a
imul byte [0x487067]
mov byte [0x487008], dl
mov byte [0x487067], al
add ebx, ecx
mov ecx, dword [0x487068]
mov eax, dword [0x487004]
cmp dword [esp + 0x10], eax
mov esi, eax
jb 0x41ad38
mov edx, dword [esp + 0x10]
mov al, cl
imul byte [0x487067]
sub edx, ecx
add esi, edx
mov dl, byte [0x487008]
mov byte [0x487067], al
mov eax, esi
imul eax, eax, 0x5a
add eax, ecx
mov dword [0x487004], esi
mov dword [esp + 0x10], eax
movzx eax, byte [0x487069]
cmp eax, 0x5cd
mov dword [esp + 0x18], eax
jne 0x41ad65
add dl, byte [0x487062]
mov ebp, dword [esp + 0x10]
movzx eax, dl
lea eax, [ebp + eax*2 - 0x18]
mov byte [0x487008], dl
mov dword [esp + 0x10], eax
cmp edi, 4
jae 0x41ad87
mov eax, dword [esp + 0x10]
sub edi, 1
lea eax, [eax + eax*2]
sub eax, ecx
movzx eax, ax
lea esi, [eax + edi - 2]
mov dword [esp + 0x28], edi
mov dword [0x487004], esi
mov eax, dword [esp + 0x10]
movzx edi, byte [0x48706a]
cmp edi, ebx
lea eax, [ecx + eax + 0x51]
movzx eax, ax
mov dword [esp + 0x14], eax
ja 0x41adbb
mov al, bl
sub al, byte [esp + 0x10]
mov byte [0x487058], dl
mov dl, byte [0x487008]
add dl, al
mov byte [0x487008], dl
cmp edi, ecx
ja 0x41adcd
mov eax, ecx
sub eax, dword [esp + 0x10]
mov byte [0x487058], bl
add ebx, eax
mov bp, word [esp + 0x14]
cmp bp, 0x519c
jbe 0x41ae78
cmp esi, ebx
movzx edi, bp
mov ebp, dword [esp + 0x10]
lea eax, [edi + ecx]
lea eax, [eax + ebp - 0x18]
mov dword [esp + 0x10], eax
jne 0x41ae49
cmp byte [0x487068], 6
jne 0x41ae04
movzx ecx, dl
lea ebx, [eax + eax*2]
sub ebx, ecx
push edi
call fcn.0041a360
mov ecx, dword [0x487068]
mov dword [esp + 0x14], eax
mov al, byte [0x487008]
add esp, 4
cmp byte [0x48706a], al
ja 0x41ae31
movzx edx, al
sub edx, ecx
mov byte [0x487058], bl
add ebx, edx
mov al, byte [esp + 0x10]
mov esi, dword [0x487004]
mov dl, 3
imul dl
mov dl, al
sub dl, bl
mov byte [0x487008], dl
movzx edi, byte [0x487069]
cmp edi, 0x5cd
mov bp, word [esp + 0x14]
mov dword [esp + 0x18], edi
jne 0x41ae9f
movzx eax, byte [0x487062]
add ebx, eax
mov eax, dword [esp + 0x10]
lea eax, [eax + ebx*2 - 0x18]
mov dword [esp + 0x10], eax
jmp 0x41ae7c
mov edi, dword [esp + 0x18]
cmp edi, 0x5cd
jne 0x41ae9f
movzx eax, byte [0x487062]
add ecx, eax
mov eax, dword [esp + 0x10]
lea eax, [eax + ecx*2 - 0x18]
mov dword [0x487068], ecx
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x24]
cmp edi, 0xe
jae 0x41aef1
cmp dword [esp + 0x18], 0x5cd
jne 0x41aecb
movzx eax, byte [0x487062]
add ecx, eax
lea esi, [esi + ecx*2 - 0x18]
mov dword [0x487068], ecx
mov dword [0x487004], esi
movzx eax, byte [0x48706a]
sub edi, 1
cmp eax, edi
mov dword [esp + 0x24], edi
ja 0x41aef1
mov al, byte [esp + 0x14]
sub edi, esi
add dword [esp + 0x14], edi
mov bp, word [esp + 0x14]
mov byte [0x487058], al
cmp dword [esp + 0x10], ecx
jb 0x41af21
mov eax, dword [esp + 0x10]
movzx esi, bp
sub eax, esi
add ecx, eax
mov al, byte [0x487067]
imul byte [esp + 0x14]
mov byte [0x487067], al
mov eax, ecx
imul eax, eax, 0x5a
add eax, esi
mov dword [0x487068], ecx
mov dword [esp + 0x10], eax
cmp dword [esp + 0x18], 0x5cd
jne 0x41af42
movzx ax, byte [0x487062]
add bp, ax
movzx eax, bp
mov word [esp + 0x14], bp
lea ebx, [ebx + eax*2 - 0x18]
movzx eax, byte [0x48705b]
movzx esi, byte [0x487060]
add eax, esi
cmp eax, 0x37c
jne 0x41af6e
mov eax, dword [esp + 0x10]
lea ebx, [ebx + eax + 0x51]
mov eax, ebx
imul eax, eax, 0x5a
add eax, ecx
mov dword [esp + 0x10], eax
jmp 0x41af7f
mov al, cl
add al, bl
sub al, 0x18
add byte [0x487061], al
mov ebx, 0x70af
cmp dword [esp + 0x1c], 0
jbe 0x41b0b2
call fcn.0041bc50
mov ecx, dword [0x487068]
cmp ebx, ecx
jb 0x41afb7
mov al, byte [0x487067]
imul byte [esp + 0x14]
movzx edx, bp
sub ebx, edx
add ecx, ebx
mov byte [0x487067], al
mov eax, ecx
imul eax, eax, 0x5a
add eax, edx
mov ebx, eax
mov edx, dword [esp + 0x2c]
sub dword [esp + 0x1c], 1
mov eax, 0xffffffe7
sub eax, edx
lea ebx, [ebx + ecx - 2]
sub eax, ebx
add dword [0x487004], eax
cmp edx, 4
jae 0x41b03c
cmp byte [0x487068], 6
je 0x41afef
movzx eax, bp
lea eax, [eax + eax*2]
sub eax, ecx
mov dword [esp + 0x10], eax
jmp 0x41affb
mov eax, dword [esp + 0x10]
movzx esi, bp
lea ecx, [eax + eax*2]
sub ecx, esi
sub edx, 1
cmp eax, ebx
mov dword [esp + 0x2c], edx
jb 0x41b022
sub eax, ecx
add ebx, eax
mov edx, ebx
mov al, cl
imul edx, edx, 0x5a
imul byte [0x487067]
add edx, ecx
mov byte [0x487067], al
mov dword [esp + 0x10], edx
mov dl, byte [0x487008]
mov eax, 0xffffffdf
sub eax, ebx
add ecx, eax
mov dword [0x487068], ecx
jmp 0x41abfd
movzx edx, byte [0x487060]
movzx eax, byte [0x48705b]
add eax, edx
cmp eax, 0x37c
mov dl, byte [0x487008]
jne 0x41b089
mov al, byte [esp + 0x10]
add al, 0x51
add dl, al
movzx eax, dl
imul eax, eax, 0x5a
add eax, dword [esp + 0x24]
mov byte [0x487008], dl
mov dword [esp + 0x10], eax
mov eax, 0xffffffdf
sub eax, ebx
add ecx, eax
mov dword [0x487068], ecx
jmp 0x41abfd
add dl, byte [esp + 0x24]
mov eax, 0xffffffdf
sub dl, 0x18
add byte [0x487061], dl
sub eax, ebx
mov dl, 0xaf
add ecx, eax
mov byte [0x487008], dl
mov dword [0x487068], ecx
jmp 0x41abfd
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x34]
mov eax, edi
sub eax, ecx
add dword [esp + 0x14], eax
mov bp, word [esp + 0x14]
movzx eax, bp
sub eax, esi
add ebx, eax
movzx eax, dl
cmp ecx, eax
jb 0x41b0f3
mov al, byte [0x487067]
sub cl, bl
imul bl
add dl, cl
movzx ecx, dl
imul ecx, ecx, 0x5a
mov byte [0x487008], dl
mov byte [0x487067], al
add ecx, ebx
mov eax, edi
sub eax, esi
add eax, ebx
lea ecx, [ecx + eax - 0x70af]
mov al, byte [esp + 0x14]
mov esi, 3
lea esp, [esp]
movzx bx, byte [0x487058]
cmp bp, bx
je 0x41b140
mov bl, 0xe7
sub bl, byte [esi + 0x487058]
sub bl, cl
sub bl, al
add dl, bl
movzx bx, byte [0x48705a]
cmp bp, bx
je 0x41b140
add esi, 2
cmp esi, 0x17
jl 0x41b110
imul edi, edi, 0x5a
mov esi, 0x7531
sub esi, ecx
add edi, esi
cmp byte [0x487068], 6
mov eax, edi
mov byte [0x487008], dl
mov ebx, 0x482
mov dword [0x487068], esi
mov dword [esp + 0x10], eax
pop ebp
je 0x41b174
lea ebx, [esi + esi*2 - 0xffe5]
movzx ecx, dl
cmp ebx, ecx
jb 0x41b19c
mov ecx, dword [0x48704c]
sub bl, al
imul ecx, eax
add dl, bl
movzx ebx, dl
imul ebx, ebx, 0x5a
mov byte [0x487008], dl
mov dword [0x48704c], ecx
add ebx, eax
mov edx, dword [0x52ddcc]
push edx
push eax
call fcn.004017e0
movzx edx, byte [0x487008]
mov dword [0x487068], eax
mov eax, dword [0x487004]
lea ecx, [eax + eax + 0xb23c]
sub ecx, edx
add ecx, ebx
add esp, 8
mov dword [0x487004], ecx
xchg ebp, eax
in eax, 0xf3
pop esi
movzx ecx, byte [0x487069]
cmp ecx, 0x5cd
mov edi, dword [esp + 0xc]
lea eax, [ebx + edi - 2]
movzx eax, ax
jne 0x41b205
movzx edx, byte [0x487062]
mov ecx, dword [0x487068]
add ecx, edx
mov dword [0x487068], ecx
lea ebx, [ebx + ecx*2 - 0x18]
movzx si, byte [0x487058]
add eax, eax
sub eax, ebx
lea ecx, [eax + edi - 0x4dc4]
movzx edx, cx
mov dword [esp + 0x10], edx
mov cx, dx
mov dl, byte [0x48705a]
mov eax, 3
lea ecx, [ecx]
cmp cx, si
je 0x41b246
movzx bx, dl
cmp cx, bx
je 0x41b246
add eax, 2
cmp eax, 0x17
jl 0x41b230
movzx ax, byte [0x48706a]
cmp ax, cx
ja 0x41b26b
mov eax, dword [0x487068]
mov ecx, 0xffffffaf
sub ecx, edi
mov byte [0x487058], al
add eax, ecx
mov dword [0x487068], eax
movzx eax, byte [0x487008]
pop edi
pop esi
pop ebx
add esp, 0x20
ret