Function at 0x401a80
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x952c
call fcn.00406250
push ebx
xor ebx, ebx
xor eax, eax
push esi
push edi
mov byte [esp + 0x1138], bl
mov ecx, 0x20
lea edi, [esp + 0x1139]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov ecx, 0x20df
lea edi, [esp + 0x11bc]
rep stosd dword es:[edi], eax
mov byte [esp + 0x138], al
mov ecx, 0x3ff
lea edi, [esp + 0x139]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x417540]
cmp eax, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], ebx
je 0x4016a6
mov ecx, dword [ebp + 8]
push ecx
push 0x4110b8
push eax
call fcn.004061ec
add esp, 0xc
mov edi, dword [ebp + 8]
push 0x4110c8
push edi
call fcn.00402050
mov esi, eax
add esp, 8
test esi, esi
mov dword [esp + 0x10], esi
jne 0x4016e9
mov eax, dword [0x417540]
test eax, eax
je 0x401c85
push edi
push str.HeapDestroy
push eax
call fcn.004061ec
add esp, 0xc
mov eax, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 2
push 0
push esi
call fcn.00405df0
add esp, 0xc
test eax, eax
push esi
jne 0x40170e
call fcn.004015a0
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x1c], edi
jne 0x401722
push esi
call fcn.00405e10
add esp, 4
mov eax, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
lea edx, [edi - 4]
push edx
push esi
call fcn.00405df0
add esp, 0xc
test eax, eax
push esi
jne 0x40170e
push 1
lea eax, [esp + 0x34]
push 4
push eax
call fcn.00405de0
add esp, 0x10
cmp eax, 1
jne 0x40170d
cmp dword [esp + 0x2c], 0x70736b61
jne 0x40170d
push 0
lea ecx, [edi - 8]
push ecx
push esi
call fcn.00405df0
add esp, 0xc
test eax, eax
push esi
jne 0x40170e
push 1
lea edx, [esp + 0x20]
push 4
push edx
call fcn.00405de0
add esp, 0x10
cmp eax, 1
jne 0x40170d
mov eax, dword [0x417540]
test eax, eax
je 0x4017a0
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp + 8]
push ecx
push edx
push 0x4110e4
push eax
call fcn.004061ec
add esp, 0x10
mov eax, dword [esp + 0x18]
imul eax, eax, 0x84
mov ecx, edi
sub ecx, eax
push 0
sub ecx, 8
push ecx
push esi
call fcn.00405df0
add esp, 0xc
test eax, eax
push esi
jne 0x40170e
mov edx, dword [esp + 0x1c]
push edx
lea eax, [esp + 0x1140]
push 0x84
push eax
call fcn.00405de0
mov ecx, dword [esp + 0x28]
add esp, 0x10
cmp ecx, eax
jne 0x40170d
dec ecx
test ecx, ecx
jl 0x40181c
mov edx, ecx
imul edx, edx, 0x84
lea eax, [esp + edx + 0x11b8]
inc ecx
mov edx, dword [eax]
mov edi, dword [esp + 0x20]
add edi, edx
adc ebx, 0
sub eax, 0x84
dec ecx
mov dword [esp + 0x20], edi
jne 0x401801
mov edi, dword [esp + 0x1c]
call fcn.00402160
cmp ebx, edx
jl 0x401842
jg 0x40182d
cmp dword [esp + 0x20], eax
jbe 0x401842
push esi
call fcn.00405e10
add esp, 4
mov eax, 0xd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
mov ebx, dword [ebp + 0x18]
mov esi, eax
imul esi, esi, 0x84
add esi, 8
dec eax
test eax, eax
mov dword [esp + 0x30], eax
jl 0x401b60
mov ecx, eax
imul ecx, ecx, 0x84
lea edx, [esp + ecx + 0x1138]
mov dword [esp + 0x14], edx
mov ecx, dword [0x417540]
test ecx, ecx
mov ebx, dword [ebp + 0xc]
je 0x401896
push eax
push 0x411104
push ecx
call fcn.004061ec
mov ecx, dword [0x417540]
add esp, 0xc
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x80]
add esi, eax
test ecx, ecx
mov dword [esp + 0x20], esi
je 0x4018b9
push eax
push 0x411118
push ecx
call fcn.004061ec
add esp, 0xc
mov ecx, dword [esp + 0x1c]
sub ecx, esi
mov esi, dword [esp + 0x10]
push 0
push ecx
push esi
call fcn.00405df0
add esp, 0xc
test eax, eax
jne 0x40170d
test ebx, ebx
mov ecx, 0x40
lea edi, [esp + 0x38]
rep stosd dword es:[edi], eax
je 0x401909
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x14]
push edx
push eax
lea eax, [esp + 0x40]
push eax
push ecx
call ebx
add esp, 0x10
cmp eax, 1
mov dword [esp + 0x28], eax
je 0x401b36
jmp 0x40190d
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x401c19
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x401990
mov eax, dword [0x417540]
test eax, eax
je 0x401938
mov edx, dword [esp + 0x14]
push edx
push 0x411128
push eax
call fcn.004061ec
add esp, 0xc
mov eax, dword [esp + 0x14]
push 0x411138
push eax
call fcn.00402050
mov esi, eax
add esp, 8
test esi, esi
jne 0x401aad
mov eax, dword [0x417540]
test eax, eax
je 0x401977
call dword [0x40e0b4]
push eax
mov eax, dword [0x417540]
push 0x41113c
push eax
call fcn.004061ec
add esp, 0xc
mov ecx, dword [esp + 0x10]
push ecx
call fcn.00405e10
add esp, 4
mov eax, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [esp + 0x38]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x401996
lea eax, [esp + 0x38]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4019a7
sub eax, edx
cmp byte [esp + eax + 0x37], 0x5c
je 0x4019e8
mov eax, 0x411158
mov edx, eax
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4019c0
lea edi, [esp + 0x38]
sub eax, edx
dec edi
mov edi, edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4019d0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
mov edx, eax
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4019f0
lea edi, [esp + 0x38]
sub eax, edx
dec edi
mov edi, edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x401a00
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0x417540]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x401a34
lea ecx, [esp + 0x38]
push ecx
push 0x41115c
push eax
call fcn.004061ec
add esp, 0xc
lea edx, [esp + 0x38]
push 0x41116c
push edx
call fcn.00402050
mov esi, eax
add esp, 8
test esi, esi
jne 0x401aad
mov edi, dword [esp + 0x34]
mov ebx, dword [0x40e0b0]
mov esi, dword [0x40e0b4]
call esi
cmp eax, 5
jne 0x401c32
push 0x411170
push 1
push 0x13c
push 0x411188
call fcn.00402090
add esp, 0x10
inc edi
cmp edi, 3
mov dword [esp + 0x34], edi
jge 0x401c32
push 0x3e8
call ebx
lea eax, [esp + 0x38]
push 0x41116c
push eax
call fcn.00402050
mov esi, eax
add esp, 8
test esi, esi
je 0x401a56
mov ecx, dword [esp + 0x14]
mov ebx, dword [ecx + 0x80]
test ebx, ebx
je 0x401b10
jmp 0x401ac0
cmp ebx, 0x1000
mov edi, ebx
jb 0x401acf
mov edi, 0x1000
mov edx, dword [esp + 0x10]
push edx
push 1
lea eax, [esp + 0x140]
push edi
push eax
call fcn.00405de0
add esp, 0x10
cmp eax, 1
jne 0x401c6b
push esi
push eax
lea ecx, [esp + 0x140]
push edi
push ecx
call fcn.00405e20
add esp, 0x10
cmp eax, 1
jne 0x401c72
sub ebx, edi
jne 0x401ac0
push esi
call fcn.00405e10
mov eax, dword [ebp + 0xc]
add esp, 4
test eax, eax
je 0x401b36
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x14]
push edx
push 1
lea eax, [esp + 0x40]
push eax
push ecx
call dword [ebp + 0xc]
add esp, 0x10
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
dec eax
sub edx, 0x84
test eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], edx
jge 0x401874
mov edi, dword [esp + 0x1c]
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
sub edi, esi
test eax, eax
mov dword [esp + 0x1c], edi
je 0x401e29
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x38]
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x401b94
mov ecx, dword [ebp + 0x10]
push 0
push 0
push 0
push ecx
call eax
add esp, 0x10
test ebx, ebx
jne 0x401c91
mov esi, dword [ebp + 0x14]
push str.ReadFile
push esi
call fcn.00402050
mov ebx, eax
mov eax, dword [0x417540]
add esp, 8
test eax, eax
je 0x401bcc
push esi
push 0x4111b8
push eax
call fcn.004061ec
mov eax, dword [0x417540]
add esp, 0xc
test ebx, ebx
jne 0x401d93
mov edx, dword [esp + 0x10]
push edx
call fcn.00405e10
mov eax, dword [0x417540]
add esp, 4
test eax, eax
je 0x401d82
call dword [0x40e0b4]
mov ecx, dword [0x417540]
push eax
mov eax, dword [ebp + 0x14]
push eax
push 0x4111d0
push ecx
call fcn.004061ec
add esp, 0x10
mov eax, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x10]
push edx
call fcn.00405e10
add esp, 4
mov eax, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x417540]
test eax, eax
je 0x401c52
call esi
mov edx, dword [0x417540]
push eax
push 0x411198
push edx
call fcn.004061ec
add esp, 0xc
mov eax, dword [esp + 0x10]
push eax
call fcn.00405e10
add esp, 4
mov eax, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x10]
push ecx
jmp 0x401c77
mov edx, dword [esp + 0x10]
push edx
call fcn.00405e10
push esi
call fcn.00405e10
add esp, 8
mov eax, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [esp + 0x38]
mov eax, ebx
sub edx, ebx
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x401ca0
lea eax, [esp + 0x38]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401cb1
sub eax, edx
cmp byte [esp + eax + 0x37], 0x5c
je 0x401cee
mov eax, 0x4111e4
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401cc8
lea edi, [esp + 0x38]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x401cd6
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0x14]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401cf3
lea edi, [esp + 0x38]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x401d01
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0x417540]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x401d35
lea edx, [esp + 0x38]
push edx
push 0x4111e8
push eax
call fcn.004061ec
add esp, 0xc
lea eax, [esp + 0x38]
push 0x411200
push eax
call fcn.00402050
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x401d8e
mov ecx, dword [esp + 0x10]
push ecx
call fcn.00405e10
mov eax, dword [0x417540]
add esp, 4
test eax, eax
je 0x401d82
call dword [0x40e0b4]
push eax
mov eax, dword [0x417540]
lea edx, [esp + 0x3c]
push edx
push str.GetCPInfo
push eax
call fcn.004061ec
add esp, 0x10
mov eax, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x417540]
test eax, eax
mov edi, dword [esp + 0x1c]
je 0x401daa
push edi
push 0x411218
push eax
call fcn.004061ec
add esp, 0xc
mov ecx, dword [esp + 0x10]
push 0
push 0
push ecx
call fcn.00405df0
add esp, 0xc
test edi, edi
je 0x401e08
nop
cmp edi, 0x1000
mov esi, edi
jb 0x401dcf
mov esi, 0x1000
mov edx, dword [esp + 0x10]
push edx
push 1
lea eax, [esp + 0x140]
push esi
push eax
call fcn.00405de0
add esp, 0x10
cmp eax, 1
push ebx
jne 0x401e3f
push eax
lea ecx, [esp + 0x140]
push esi
push ecx
call fcn.00405e20
add esp, 0x10
cmp eax, 1
jne 0x401e5d
sub edi, esi
jne 0x401dc0
push ebx
call fcn.00405e10
mov eax, dword [ebp + 0xc]
add esp, 4
test eax, eax
je 0x401e29
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push ecx
push 2
push 0
push edx
call eax
add esp, 0x10
mov eax, dword [esp + 0x10]
push eax
call fcn.00405e10
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00405e10
mov edx, dword [esp + 0x14]
push edx
call fcn.00405e10
add esp, 8
mov eax, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
call fcn.00405e10
mov eax, dword [esp + 0x14]
push eax
call fcn.00405e10
add esp, 8
pop edi
pop esi
mov eax, 0xc
pop ebx
mov esp, ebp
pop ebp
ret