Function at 0x404144
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x60
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x10], 0xe2e4d526
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x10]
cmp eax, 0x1fe8acfc
jle 0x4041d1
cmp eax, 0x446ff40b
jle 0x404225
cmp eax, 0x697bd609
jg 0x404300
cmp eax, 0x59e7227f
jg 0x404430
cmp eax, 0x4afd9ee9
jg 0x40461e
cmp eax, 0x446ff40c
je 0x40493c
cmp eax, 0x48f2b0a9
jne 0x404166
mov eax, dword [ebp - 0x14]
shl eax, 0xa
add eax, 0x9000
shr eax, 0xd
imul eax, eax, 0xd20
or eax, 0x17
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0xaf7469f1
jmp 0x404166
cmp eax, 0xc6986cd0
jle 0x404280
cmp eax, 0xf53cb2ed
jle 0x404346
cmp eax, 0x73d4ace
jg 0x404486
cmp eax, 0xfa4794cf
jg 0x404652
cmp eax, 0xf53cb2ee
je 0x40496b
cmp eax, 0xf9f37ae3
jne 0x404166
mov eax, dword [ebx + 4]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x10], 0x4afd9eea
jmp 0x404166
cmp eax, 0x3c221f89
jle 0x40439c
cmp eax, 0x3e52ca14
jg 0x4044b9
cmp eax, 0x3dbd8953
jg 0x4046a8
cmp eax, 0x3c221f8a
je 0x404986
cmp eax, 0x3c4214c6
jne 0x404166
cmp byte [ebp - 0x22], 0
mov eax, 0x89315936
jne 0x40426c
mov eax, 0x822d09c5
cmp dword [ebp + 0x14], 1
je 0x404d73
mov eax, 0x822d09c5
jmp 0x404d73
cmp eax, 0xaf7469f0
jle 0x4043d4
cmp eax, 0xb9250ce9
jg 0x404502
cmp eax, 0xb5238c97
jg 0x4046df
cmp eax, 0xaf7469f1
je 0x4049ae
cmp eax, 0xb2ef7c36
jne 0x404166
push dword [ebp - 0x5c]
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push eax
mov eax, esp
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov word [eax + 2], 0
mov eax, dword [ebp - 0x3c]
movzx ecx, word [0x4700ec]
mov word [eax], cx
xor eax, eax
inc eax
push eax
push 0x4700ee
push eax
push dword [ebp - 0x3c]
call fcn.00409980
add esp, 0x10
mov dword [ebp - 0x10], 0x3f980cc8
jmp 0x404166
cmp eax, 0x7dbbe634
jg 0x40452f
cmp eax, 0x6e6eb301
jg 0x404712
cmp eax, 0x697bd60a
je 0x404a05
cmp eax, 0x6a7ff886
jne 0x404166
mov eax, dword [ebp - 0x14]
shr eax, 0xf
add eax, 0x174
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0x73d4acf
jmp 0x404166
cmp eax, 0xe5be4b7b
jle 0x404568
cmp eax, 0xed6ce601
jg 0x404734
cmp eax, 0xe5be4b7c
je 0x404a1e
cmp eax, 0xe66b055b
jne 0x404166
mov ecx, dword [ebp - 0x14]
shl ecx, 0x10
add ecx, 0x720000
mov dword [ebp - 0x14], ecx
mov eax, 0x5352a23c
cmp ecx, 0x91
jl 0x404d73
mov eax, 0x64c4a4b2
jmp 0x404d73
cmp eax, 0x2cfbd5ed
jle 0x40458e
cmp eax, 0x2f357b4c
jg 0x40475b
cmp eax, 0x2cfbd5ee
je 0x404a57
cmp eax, 0x2e68f7fd
jne 0x404166
mov dword [ebp - 0x10], 0x2bdaf2d1
jmp 0x404166
cmp eax, 0x89315935
jle 0x4045d5
cmp eax, 0x8c153c97
jg 0x40478b
cmp eax, 0x89315936
je 0x404a6a
cmp eax, 0x8b5bda0c
jne 0x404166
mov ecx, dword [ebp - 0x18]
add ecx, 0xffffffdd
imul eax, ecx, 0x270000
imul ecx, ecx
imul edx, ecx, 0xe6d
dec edx
mov dword [ebp - 0x18], eax
mov eax, 0xed6ce602
cmp ecx, edx
je 0x404d73
mov eax, 0x3c4214c6
jmp 0x404d73
cmp eax, 0x64c4a4b1
jg 0x4047d7
cmp eax, 0x59e72280
je 0x404a76
cmp eax, 0x617e93dd
jne 0x404166
mov eax, dword [ebp - 0x18]
lea ecx, [eax - 6]
imul ecx, ecx
imul edx, ecx, 0x707d
dec edx
imul eax, eax, 0x368000
add eax, 0xe7f18000
mov dword [ebp - 0x18], eax
mov eax, 0xf9f37ae3
cmp ecx, edx
je 0x404d73
mov eax, 0xd3d47d4d
jmp 0x404d73
cmp eax, 0x1259ed3e
jg 0x404834
cmp eax, 0x73d4acf
je 0x404a82
cmp eax, 0x123d345e
jne 0x404166
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x10], 0x3fbd283e
jmp 0x404166
cmp eax, 0x3fbd283d
jg 0x404874
cmp eax, 0x3e52ca15
je 0x404aae
cmp eax, 0x3f980cc8
jne 0x404166
push dword [ebp - 0x3c]
push dword [ebp - 0x20]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
call esi
push dword [ebx + 8]
push dword [ebp - 0x20]
call esi
push eax
mov eax, esp
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x10], 0xb5238c98
jmp 0x404166
cmp eax, 0xbb84be90
jg 0x40489f
cmp eax, 0xb9250cea
je 0x404aba
cmp eax, 0xbb6bd3bb
jne 0x404166
mov dword [ebp - 0x10], 0x697bd60a
jmp 0x404166
cmp eax, 0x7ef46fc4
jg 0x4048e0
cmp eax, 0x7dbbe635
je 0x404aeb
cmp eax, 0x7ed4275a
jne 0x404166
push dword [ebp - 0x38]
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov dword [ebp - 0x10], 0x3c221f8a
jmp 0x404166
cmp eax, 0xdf545e12
jle 0x404920
cmp eax, 0xdf545e13
je 0x404b04
cmp eax, 0xe2e4d526
je 0x404ce5
jmp 0x404166
cmp eax, 0x1fe8acfd
je 0x404b23
cmp eax, 0x20357a4c
je 0x404b3a
cmp eax, 0x2bdaf2d1
jne 0x404166
mov dword [ebp - 0x30], 0
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x1c]
call fcn.0040fea0
add esp, 0xc
mov dword [ebp - 0x10], 0xb6220657
jmp 0x404166
cmp eax, 0x814c574a
je 0x404b58
cmp eax, 0x822d09c5
je 0x404b70
cmp eax, 0x83a82200
jne 0x404166
mov eax, dword [ebp - 0x14]
shl eax, 0xe
add eax, 0xfff56
mov dword [ebp - 0x14], eax
push eax
push 0x452
call fcn.004018b8
add esp, 8
mov dword [ebp - 0x10], 0xdf545e13
jmp 0x404166
cmp eax, 0x4afd9eea
je 0x404bb9
cmp eax, 0x5352a23c
jne 0x404166
push 2
push 0x104
call fcn.0045c783
add esp, 8
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xf53cb2ee
jmp 0x404166
cmp eax, 0xfa4794d0
je 0x404bd7
cmp eax, 0xfc9afeb5
jne 0x404166
mov eax, dword [ebp - 0x14]
shr eax, 9
and eax, 0x1fffff
imul esi, eax, 0x9d0
add esi, 0xdf0
mov dword [ebp - 0x14], esi
push 0x15e1
push esi
call fcn.00402f13
add esp, 8
mov eax, 0x6a7ff886
cmp esi, 0x3b
jge 0x404d73
mov eax, 0x7759dc37
jmp 0x404d73
cmp eax, 0x3dbd8954
je 0x404c16
cmp eax, 0x3dfc6e2f
jne 0x404166
mov eax, dword [ebp - 0x18]
add eax, 0xffffffb4
shr eax, 6
imul eax, eax, 0xce0
add eax, 0xffffffa3
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], 0xd3d47d4d
jmp 0x404166
cmp eax, 0xb5238c98
je 0x404c26
cmp eax, 0xb6220657
jne 0x404166
mov eax, dword [ebp - 0x18]
shr eax, 4
and eax, 0x7ffff
add eax, 0xffffffad
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], 0x123d345e
jmp 0x404166
cmp eax, 0x6e6eb302
je 0x404c32
cmp eax, 0x7759dc37
jne 0x404166
mov dword [ebp - 0x10], 0x7dbbe635
jmp 0x404166
cmp eax, 0xed6ce602
je 0x404c5d
cmp eax, 0xf2b2172c
jne 0x404166
imul eax, dword [ebp - 0x14], 0x99200
add eax, 0xffef5200
jmp 0x404ce2
cmp eax, 0x2f357b4d
je 0x404ca8
cmp eax, 0x30444667
jne 0x404166
cmp dword [ebp - 0x44], 0
sete byte [ebp - 0x21]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x10], 0x2f357b4d
jmp 0x404166
cmp eax, 0x8c153c98
je 0x404cd6
cmp eax, 0x96e4aa91
jne 0x404166
mov eax, dword [ebp - 0x58]
mov word [eax], 0
mov eax, dword [ebp - 0x38]
movzx ecx, word [0x4700e8]
mov word [eax], cx
xor eax, eax
inc eax
push eax
push 0x4700ea
push eax
push dword [ebp - 0x38]
call fcn.00409980
add esp, 0x10
mov dword [ebp - 0x10], 0x7ed4275a
jmp 0x404166
cmp eax, 0x64c4a4b2
je 0x404cf1
cmp eax, 0x662f916b
jne 0x404166
mov ecx, dword [ebp - 0x18]
imul eax, ecx, 0x69
add eax, 0x4f
imul eax, eax
imul edx, eax, 0xcd9
dec edx
imul ecx, ecx, 0x2e59
add ecx, 0x65f7
shr ecx, 0xe
mov dword [ebp - 0x18], ecx
mov ecx, 0x3dbd8954
cmp eax, edx
je 0x404820
mov ecx, 0x1259ed3f
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x28], eax
jmp 0x404166
cmp eax, 0x1259ed3f
je 0x404d1a
cmp eax, 0x1c3cf6f9
jne 0x404166
mov esi, dword [ebp - 0x14]
add esi, 0x6c
mov dword [ebp - 0x14], esi
push esi
call fcn.00402916
add esp, 4
mov eax, 0x446ff40c
cmp esi, 0x6f
jl 0x404d73
mov eax, 0xf2b2172c
jmp 0x404d73
cmp eax, 0x3fbd283e
je 0x404d32
cmp eax, 0x4184e190
jne 0x404166
mov eax, dword [ebp - 0x38]
add eax, 2
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x10], 0x96e4aa91
jmp 0x404166
cmp eax, 0xbb84be91
je 0x404d3e
cmp eax, 0xc3d5f3f6
jne 0x404166
imul ecx, dword [ebp - 0x14], 0x32ccb00
add ecx, 0xffffff4c
mov dword [ebp - 0x14], ecx
mov eax, 0x7759dc37
cmp ecx, 0xea
jl 0x404d73
mov eax, 0xe66b055b
jmp 0x404d73
cmp eax, 0x7ef46fc5
je 0x404d7b
cmp eax, 0x7fbe84b8
jne 0x404166
push dword [ebp - 0x1c]
call fcn.00409f74
add esp, 4
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x1c]
call fcn.0040fea0
add esp, 0xc
mov dword [ebp - 0x10], 0xbb84be91
jmp 0x404166
cmp eax, 0xc6986cd1
jne 0x404d87
mov eax, dword [ebx]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x10], 0xb9250cea
jmp 0x404166
mov esi, dword [ebp - 0x14]
shl esi, 9
add esi, 0xffc10000
and esi, 0xffff8000
or esi, 0x60
mov dword [ebp - 0x14], esi
push esi
call fcn.00401e94
add esp, 4
push esi
call fcn.00401ce3
add esp, 4
jmp 0x404ce5
imul eax, dword [ebp - 0x18], 0xa0e00
and eax, 0xfffff800
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], 0xf9f37ae3
jmp 0x404166
mov eax, dword [ebp - 0x18]
shl eax, 0x14
add eax, 0x3ffffe1
shr eax, 2
and eax, 0xfffff8
imul eax, eax, 0xde
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], 0x64c4a4b2
jmp 0x404166
mov ebx, edi
mov eax, dword [ebp - 0x14]
shr eax, 0xa
imul edi, eax, 0x548e
add edi, 0xffffb379
mov esi, edi
shr esi, 9
mov dword [ebp - 0x14], esi
push 0x22f
push 0x2393
push esi
call fcn.00402863
add esp, 0xc
push esi
call fcn.004027bd
add esp, 4
mov eax, 0x64c4a4b2
cmp edi, 0x1f600
jb 0x4049f8
mov eax, 0x20357a4c
mov dword [ebp - 0x10], eax
mov edi, ebx
mov ebx, dword [ebp + 8]
jmp 0x404166
cmp dword [ebp - 0x48], 0
sete al
and al, byte [ebp - 0x21]
mov byte [ebp - 0x22], al
mov dword [ebp - 0x10], 0x8b5bda0c
jmp 0x404166
mov eax, dword [ebp - 0x18]
shr eax, 7
imul ecx, eax, 0xeb
imul eax, eax, 0x5e8d
imul ecx, ecx
imul edx, ecx, 0x8351
add eax, 0x1a
dec edx
mov dword [ebp - 0x18], eax
mov eax, 0xc3d5f3f6
cmp ecx, edx
je 0x404d73
mov eax, 0x3e52ca15
jmp 0x404d73
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x10], 0x2e68f7fd
jmp 0x404166
mov dword [ebp - 0x10], 0x7fbe84b8
jmp 0x404166
mov dword [ebp - 0x10], 0x6e6eb302
jmp 0x404166
mov eax, dword [ebp - 0x14]
add eax, 6
shr eax, 0x10
mov dword [ebp - 0x14], eax
sub esp, 4
push eax
push 0x5774
push 0xee7
call fcn.00402ecf
add esp, 0x10
call fcn.00401e77
jmp 0x404ce5
mov dword [ebp - 0x10], 0xc6986cd1
jmp 0x404166
mov eax, dword [ebp - 0x18]
lea ecx, [eax - 0x26]
imul ecx, ecx
imul edx, ecx, 0x40cf
dec edx
lea eax, [eax*4 - 0x270]
mov dword [ebp - 0x18], eax
mov eax, 0xf9f37ae3
cmp ecx, edx
je 0x404d73
mov eax, 0xb2ef7c36
jmp 0x404d73
mov eax, dword [ebp - 0x18]
add eax, eax
add eax, 0xffffff74
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], 0x4184e190
jmp 0x404166
mov eax, dword [ebp - 0x14]
shr eax, 4
and eax, 0x1fff
add eax, 0xeb
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0x3f980cc8
jmp 0x404166
push dword [ebp - 0x1c]
call fcn.0045d1bc
add esp, 4
mov dword [ebp - 0x10], 0x3dfc6e2f
jmp 0x404166
push 2
push 0x104
call fcn.0045c783
add esp, 8
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], 0xe5be4b7c
jmp 0x404166
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x10], 0x662f916b
jmp 0x404166
mov ecx, dword [ebp - 0x18]
add ecx, 0xffffffbb
mov eax, ecx
shr eax, 0xb
shr ecx, 0x17
imul eax, eax
imul edx, eax, 0x7421
dec edx
imul ecx, ecx, 0x3f000
add ecx, 0xfcd0f000
mov dword [ebp - 0x18], ecx
mov ecx, 0x6a49f362
cmp edx, eax
je 0x404ba5
mov ecx, 0x1259ed3f
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x28], eax
jmp 0x404166
push dword [ebp - 0x54]
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push eax
mov eax, esp
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x10], 0x7759dc37
jmp 0x404166
mov esi, dword [ebp - 0x14]
and esi, 0xfffffff8
shl esi, 0xc
add esi, 0xfffffe88
mov dword [ebp - 0x14], esi
push esi
push 0x34dc
push 0x12a0
call fcn.004028a1
add esp, 0xc
push 0x52a6
push esi
call fcn.00401924
add esp, 8
mov dword [ebp - 0x10], 0x1c3cf6f9
jmp 0x404166
shl dword [ebp - 0x14], 0x11
mov dword [ebp - 0x10], 0xb2ef7c36
jmp 0x404166
mov dword [ebp - 0x10], 0xed6ce602
jmp 0x404166
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x20]
push dword [ebp + 0x10]
call fcn.004250fe
add esp, 0x10
push dword [ebp - 0x20]
call fcn.0045d1bc
add esp, 4
mov dword [ebp - 0x10], 0x1fe8acfd
jmp 0x404166
mov eax, dword [ebp - 0x40]
mov word [eax + 2], 0
mov eax, dword [ebp - 0x40]
movzx ecx, word [0x4700f0]
mov word [eax], cx
xor eax, eax
inc eax
push eax
push 0x4700f2
push eax
push dword [ebp - 0x40]
call fcn.00409980
add esp, 0x10
push dword [ebp - 0x40]
push dword [ebp - 0x20]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
call esi
push edi
push dword [ebp - 0x20]
call esi
mov dword [ebp - 0x10], 0x7ef46fc5
jmp 0x404166
mov eax, dword [ebp - 0x18]
shr eax, 7
add eax, 0xfffffff3
mov ecx, eax
shr ecx, 0xa
imul eax, eax
imul edx, eax, 0x4b1d
dec edx
add ecx, 0x53
mov dword [ebp - 0x18], ecx
mov ecx, 0xc6986cd1
cmp edx, eax
je 0x404d12
mov ecx, 0xbb6bd3bb
jmp 0x404d12
imul eax, dword [ebp - 0x14], 0x5fa0000
add eax, 0xcf20000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0x5352a23c
jmp 0x404166
push edi
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push dword [ebp - 0x1c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov ecx, 0x617e93dd
test eax, eax
je 0x404d12
mov ecx, 0x20357a4c
mov dword [ebp - 0x10], ecx
jmp 0x404166
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x10], 0x59e72280
jmp 0x404166
mov dword [ebp - 0x10], 0x30444667
jmp 0x404166
mov eax, dword [ebp - 0x18]
shr eax, 6
imul eax, eax, 0xb7
lea ecx, [eax + 0x821a]
add eax, 0x81b5
imul ecx, ecx
imul edx, ecx, 0x13c3
shr eax, 0x13
dec edx
mov dword [ebp - 0x18], eax
mov eax, 0x8a008e8f
cmp edx, ecx
je 0x404d73
mov eax, 0x814c574a
mov dword [ebp - 0x10], eax
jmp 0x404166
mov dword [ebp - 0x10], 0x2cfbd5ee
jmp 0x404166
cmp eax, 0xd3d47d4d
jne 0x404166
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x4c], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret