Function at 0x40404f
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x38
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], 0xe2e4d526
add eax, 4
mov dword [ebp - 0x30], eax
mov edi, dword [ebp - 0x34]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatW]
mov eax, dword [ebp - 0x10]
cmp eax, 0x2e68f7fc
jle 0x404101
cmp eax, 0x4afd9ee9
jle 0x40414f
cmp eax, 0x7759dc36
jle 0x40421e
cmp eax, 0x7ed42759
jle 0x404339
cmp eax, 0x7ed4275a
je 0x4044bf
cmp eax, 0x7ef46fc5
je 0x4044dc
cmp eax, 0x7fbe84b8
jne 0x404071
imul esi, edi, 0x11b11bb8
add esi, 0x187f12b0
mov edi, esi
shr edi, 5
push 0x1a2e
push 0x4c44
push edi
push 0x5a95
call fcn.00403c2b
add esp, 0x10
mov eax, 0xf9f37ae3
cmp esi, 0x4a0
jb 0x4042f2
mov eax, 0x814c574a
jmp 0x4042f2
cmp eax, 0xe2e4d525
jle 0x4041a0
cmp eax, 0xf9f37ae2
jle 0x404281
cmp eax, 0x20357a4b
jle 0x40436a
cmp eax, 0x20357a4c
je 0x4044ee
cmp eax, 0x2bdaf2d1
je 0x40452d
cmp eax, 0x2cfbd5ee
jne 0x404071
mov dword [ebp - 0x10], 0x2bdaf2d1
jmp 0x404071
cmp eax, 0x3c4214c5
jle 0x4042ae
cmp eax, 0x3f980cc7
jle 0x404385
cmp eax, 0x3f980cc8
je 0x404566
cmp eax, 0x4184e190
jne 0x404734
mov eax, dword [ebp + 8]
push dword [eax]
push dword [ebp - 0x18]
call ebx
push eax
mov eax, esp
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov word [eax + 2], 0
mov dword [ebp - 0x10], 0x7ed4275a
jmp 0x404071
cmp eax, 0xb5238c97
jg 0x4042fa
cmp eax, 0x96e4aa90
jg 0x4043af
cmp eax, 0x814c574a
je 0x40458c
cmp eax, 0x8b5bda0c
jne 0x404071
imul esi, edi, 0x9e
add esi, 0xfffffffd
mov edi, esi
shr edi, 5
add edi, 8
push 0x2804
push 0x2e85
push edi
call fcn.00401869
add esp, 0xc
push 0x3225
push edi
push 0x4bab
call fcn.00402733
add esp, 0xc
mov eax, 0xe2e4d526
cmp esi, 0xbe0
jae 0x4042f2
mov eax, 0x89315936
jmp 0x4042f2
cmp eax, 0x64c4a4b1
jg 0x4043d1
cmp eax, 0x4afd9eea
je 0x40459b
cmp eax, 0x5352a23c
jne 0x404071
mov eax, dword [ebp - 0x38]
push dword [eax]
push dword [ebp - 0x1c]
call ebx
push eax
mov esi, esp
mov word [esi + 2], 0
movzx eax, word [0x46d0e8]
mov word [esi], ax
xor eax, eax
inc eax
push eax
push 0x46d0ea
push eax
push esi
call fcn.00408260
add esp, 0x10
push esi
push dword [ebp - 0x1c]
call ebx
mov dword [ebp - 0x10], 0xf53cb2ee
jmp 0x404071
cmp eax, 0xed6ce601
jg 0x40440c
cmp eax, 0xe2e4d526
je 0x4045b9
cmp eax, 0xe5be4b7c
jne 0x404071
mov dword [ebp - 0x10], 0xb2ef7c36
jmp 0x404071
cmp eax, 0x30444666
jg 0x40443d
cmp eax, 0x2e68f7fd
je 0x4045e3
cmp eax, 0x2f357b4d
jne 0x404071
imul ecx, edi, 0x3a
add ecx, 0x1abc
mov edi, ecx
shr edi, 0xf
mov eax, 0x697bd60a
cmp ecx, 0x908000
jae 0x4042ef
mov eax, 0x3c4214c6
add edi, 0xffffffa5
mov dword [ebp - 0x10], eax
jmp 0x404071
cmp eax, 0xb9250ce9
jg 0x40446d
cmp eax, 0xb5238c98
je 0x40461a
cmp eax, 0xb6220657
jne 0x404071
imul eax, dword [ebp - 0x14], 0x35d0
add eax, 0x2a0
shr eax, 0x13
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0x123d345e
jmp 0x404071
cmp eax, 0x7759dc37
je 0x404626
cmp eax, 0x7dbbe635
jne 0x404071
imul eax, dword [ebp - 0x14], 0xb000
or eax, 0x80
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0x4184e190
jmp 0x404071
cmp eax, 0xf9f37ae3
je 0x404649
cmp eax, 0x123d345e
je 0x40470f
jmp 0x404071
cmp eax, 0x3c4214c6
je 0x404670
cmp eax, 0x3e52ca15
jne 0x404071
push dword [ebp + 0xc]
push dword [ebp - 0x18]
call ebx
mov dword [ebp - 0x10], 0xc6986cd1
jmp 0x404071
cmp eax, 0x96e4aa91
je 0x404697
cmp eax, 0xb2ef7c36
jne 0x404071
mov dword [ebp - 0x10], 0xb9250cea
jmp 0x404071
cmp eax, 0x64c4a4b2
je 0x4046c5
cmp eax, 0x697bd60a
jne 0x404071
add edi, 0x58
shr edi, 0x13
imul edi, edi, 0x63
shr edi, 9
push edi
push 0x1fd4
call fcn.00402434
add esp, 8
push edi
call fcn.0040137c
jmp 0x404688
cmp eax, 0xed6ce602
je 0x4046e2
cmp eax, 0xf53cb2ee
jne 0x404071
mov eax, dword [ebp - 0x14]
shr eax, 3
imul eax, eax, 0x9410
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0xf9f37ae3
jmp 0x404071
cmp eax, 0x30444667
je 0x404700
cmp eax, 0x3c221f8a
jne 0x404071
push dword [ebp - 0x3c]
push dword [ebp - 0x18]
call ebx
push eax
mov eax, esp
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0x20357a4c
jmp 0x404071
cmp eax, 0xb9250cea
je 0x40471b
cmp eax, 0xc6986cd1
jne 0x404071
mov ecx, dword [ebp - 0x14]
lea eax, [ecx + ecx*2]
shl eax, 3
sub eax, ecx
add eax, 0xd0
mov ecx, eax
shl ecx, 9
imul eax, eax
imul edx, eax, 0x2d79
dec edx
or ecx, 0x1f
mov dword [ebp - 0x14], ecx
mov ecx, 0xe2e4d526
cmp eax, edx
je 0x404668
mov ecx, 0xe5be4b7c
jmp 0x404668
mov eax, dword [ebp - 0x14]
and eax, 0xffffff80
shl eax, 6
or eax, 0x99
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0x96e4aa91
jmp 0x404071
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x10], 0x2e68f7fd
jmp 0x404071
mov eax, dword [ebp - 0x28]
mov word [eax + 2], 0
mov eax, dword [ebp - 0x28]
movzx ecx, word [str.Na_]
mov word [eax], cx
xor eax, eax
inc eax
push eax
push 0x46d0f2
push eax
push dword [ebp - 0x28]
call fcn.00408260
add esp, 0x10
push dword [ebp - 0x28]
push dword [ebp - 0x18]
call ebx
mov dword [ebp - 0x10], 0x3e52ca15
jmp 0x404071
push dword [ebp - 0x40]
push dword [ebp - 0x44]
push dword [ebp - 0x18]
push dword [ebp + 0x10]
call fcn.0042245f
add esp, 0x10
push dword [ebp - 0x18]
call fcn.004596fc
add esp, 4
push dword [ebp - 0x1c]
call fcn.004596fc
add esp, 4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], 0xb6220657
jmp 0x404071
push dword [ebp - 0x20]
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x1c]
call fcn.0040d04e
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x10], 0xed6ce602
jmp 0x404071
shl edi, 0x13
mov dword [ebp - 0x10], 0x5352a23c
jmp 0x404071
push 2
push 0x104
call fcn.00458cc3
add esp, 8
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], 0x7dbbe635
jmp 0x404071
push eax
mov eax, esp
mov dword [ebp - 0x20], eax
push 2
push 0x104
call fcn.00458cc3
add esp, 8
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x10], 0x5352a23c
jmp 0x404071
mov ecx, dword [ebp - 0x14]
imul eax, ecx, 0xc1
add eax, 0x6f6d
imul eax, eax
imul edx, eax, 0x6761
dec edx
imul ecx, ecx, 0x608000
add ecx, 0x37c30000
mov dword [ebp - 0x14], ecx
mov ecx, 0x4184e190
cmp eax, edx
je 0x404668
mov ecx, 0x2cfbd5ee
jmp 0x404668
mov dword [ebp - 0x10], 0x7ef46fc5
jmp 0x404071
mov eax, dword [ebp - 0x14]
shl eax, 2
and eax, 0xffffff80
imul eax, eax, 0x39e680
add eax, 0xee5bc500
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0x4afd9eea
jmp 0x404071
push dword [ebp + 0xc]
push dword [ebp - 0x1c]
call ebx
push dword [ebp - 0x1c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov ecx, 0x30444667
test eax, eax
je 0x404668
mov ecx, 0x7759dc37
mov dword [ebp - 0x10], ecx
jmp 0x404071
imul eax, edi, 0x5e
add eax, 0xffffff85
shr eax, 9
imul edi, eax, 0x6d
add edi, 0xffffff48
push edi
call fcn.004025b7
add esp, 4
mov dword [ebp - 0x10], 0xe2e4d526
jmp 0x404071
mov eax, dword [ebp - 0x24]
movzx ecx, word [0x46d0ec]
mov word [eax], cx
xor eax, eax
inc eax
push eax
push 0x46d0ee
push eax
push dword [ebp - 0x24]
call fcn.00408260
add esp, 0x10
mov dword [ebp - 0x10], 0x64c4a4b2
jmp 0x404071
push dword [ebp - 0x24]
push dword [ebp - 0x18]
call ebx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x10], 0x3c221f8a
jmp 0x404071
imul eax, dword [ebp - 0x14], 0x14800
add eax, 0xbee800
shr eax, 5
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0xb5238c98
jmp 0x404071
imul eax, dword [ebp - 0x14], 0x34
add eax, 0xfffff028
shr eax, 0xf
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0x3fbd283e
jmp 0x404071
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov dword [eax], ecx
mov dword [ebp - 0x10], 0x3f980cc8
jmp 0x404071
cmp eax, 0x3fbd283e
jne 0x404071
mov dword [ebp - 0x34], edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret