Function at 0x4147e0
Capabilities:
Check if file exists
Get file attributes
Resolve function by parsing pe exports

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x5b7be0
push eax
mov dword fs:[0], esp
sub esp, 0x1b8
mov edx, dword [esp + 0x1c8]
lea eax, [esp + 0x68]
push ebx
push ebp
push esi
xor ebp, ebp
push edi
push ebp
push ebp
push ebp
push ebp
push pe_nt_image_headers32
lea ecx, [esp + 0x18c]
push eax
push ecx
push edx
call fcn.00577560
add esp, 0x20
cmp eax, ebp
jne 0x41506b
lea eax, [esp + 0x78]
push ebp
push eax
lea ecx, [esp + 0x74]
mov dword [esp + 0x74], ebp
mov dword [esp + 0x7c], ebp
mov word [esp + 0x78], bp
call fcn.00402800
xor esi, esi
mov dword [esp + 0x1d0], ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], ebp
mov word [esp + 0x24], bp
mov edi, dword [esp + 0x6c]
mov byte [esp + 0x1d0], 1
cmp edi, ebp
jne 0x414875
lea edi, [esp + 0x70]
mov eax, dword [0x687b28]
cmp eax, ebp
jne 0x414883
mov eax, 0x687b2c
mov ecx, 0x65e0e0
test ecx, ecx
je 0x4149ff
cmp eax, ebp
je 0x4149ff
mov edx, str.idmmzcc5
test edx, edx
je 0x4149ff
cmp edi, ebp
je 0x4149ff
push eax
lea ecx, [esp + 0x60]
call fcn.00403af0
push str.idmmzcc5
lea ecx, [esp + 0x18]
mov byte [esp + 0x1d4], 2
call fcn.00403af0
push edi
lea ecx, [esp + 0x54]
mov byte [esp + 0x1d4], 3
call fcn.00403af0
mov bl, 4
lea ecx, [esp + 0x20]
mov byte [esp + 0x1d0], bl
call fcn.00401070
push 0x65e0e0
lea ecx, [esp + 0x3c]
call fcn.00401e50
mov esi, dword [esp + 0x40]
lea ecx, [esp + 0x50]
mov byte [esp + 0x1d0], 5
call fcn.00401ed0
push eax
call fcn.00589432
add esp, 4
lea ecx, [esp + 0x14]
mov edi, eax
call fcn.00401ed0
push eax
call fcn.00589432
mov ebp, eax
add esp, 4
lea ecx, [esp + 0x5c]
add ebp, esi
call fcn.00401ed0
push eax
call fcn.00589432
add ebp, edi
lea esi, [eax + ebp + 4]
lea ebp, [esi + esi]
push ebp
call fcn.005a1be9
mov edi, eax
add esp, 8
test edi, edi
mov dword [esp + 0x20], edi
je 0x4149b6
mov ecx, ebp
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [esp + 0x50]
call fcn.00401ed0
push eax
lea ecx, [esp + 0x18]
call fcn.00401ed0
push eax
lea ecx, [esp + 0x64]
call fcn.00401ed0
push eax
lea ecx, [esp + 0x44]
call fcn.00401ed0
push eax
mov eax, dword [esp + 0x30]
push esi
push eax
call fcn.005893c2
mov ecx, dword [esp + 0x38]
push ecx
call fcn.00589432
add esp, 0x1c
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x1d0], bl
call fcn.00401070
lea ecx, [esp + 0x50]
mov byte [esp + 0x1d0], 3
call fcn.00401070
lea ecx, [esp + 0x14]
mov byte [esp + 0x1d0], 2
call fcn.00401070
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1d0], 1
call fcn.00401070
mov esi, dword [esp + 0x20]
xor ebp, ebp
cmp esi, ebp
je 0x414a29
push esi
call fcn.00589432
lea eax, [esi + eax*2]
add esp, 4
cmp esi, eax
jae 0x414a25
cmp word [esi], 0x2f
jne 0x414a1e
mov word [esi], 0x5c
add esi, 2
cmp esi, eax
jb 0x414a13
mov esi, dword [esp + 0x20]
xor ecx, ecx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x2c], ecx
mov word [esp + 0x30], bp
cmp esi, ebp
mov byte [esp + 0x1d0], 6
mov eax, esi
jne 0x414a4a
lea eax, [esp + 0x24]
mov edx, 0x65bf6c
test edx, edx
je 0x414b27
cmp eax, ebp
je 0x414b27
push eax
lea ecx, [esp + 0x3c]
call fcn.00403af0
mov bl, 7
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1d0], bl
call fcn.00401070
push 0x65bf6c
lea ecx, [esp + 0x60]
call fcn.00401e50
mov esi, dword [esp + 0x64]
lea ecx, [esp + 0x38]
mov byte [esp + 0x1d0], 8
call fcn.00401ed0
push eax
call fcn.00589432
lea esi, [eax + esi + 2]
lea ebp, [esi + esi]
push ebp
call fcn.005a1be9
mov edi, eax
add esp, 8
test edi, edi
mov dword [esp + 0x2c], edi
je 0x414b00
mov ecx, ebp
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [esp + 0x38]
call fcn.00401ed0
push eax
lea ecx, [esp + 0x60]
call fcn.00401ed0
push eax
mov eax, dword [esp + 0x34]
push esi
push eax
call fcn.005893c2
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.00589432
add esp, 0x14
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1d0], bl
call fcn.00401070
lea ecx, [esp + 0x38]
mov byte [esp + 0x1d0], 6
call fcn.00401070
mov ecx, dword [esp + 0x2c]
xor ebp, ebp
cmp ecx, ebp
mov eax, ecx
jne 0x414b31
lea eax, [esp + 0x30]
push 0x5c
push eax
call fcn.00589382
add esp, 8
cmp eax, ebp
je 0x414c4a
add eax, 2
mov word [eax], bp
mov eax, dword [esp + 0x2c]
cmp eax, ebp
jne 0x414b56
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x414c4a
mov eax, dword [esp + 0x2c]
cmp eax, ebp
jne 0x414b72
lea eax, [esp + 0x30]
add eax, 6
push 0x5c
push eax
call fcn.0058989f
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x414c4a
mov bl, 9
mov eax, dword [esp + 0x2c]
cmp eax, ebp
jne 0x414b98
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], ebp
mov word [esp + 0x1c], bp
call fcn.00401ee0
mov eax, dword [esp + 0x14]
mov byte [esp + 0x1d0], bl
cmp eax, ebp
mov ecx, eax
jne 0x414bc4
lea ecx, [esp + 0x18]
mov eax, dword [esp + 0x2c]
cmp eax, ebp
jne 0x414bd0
lea eax, [esp + 0x30]
mov edx, esi
sub edx, eax
sar edx, 1
mov word [ecx + edx*2], bp
mov eax, dword [esp + 0x14]
cmp eax, ebp
jne 0x414be6
lea eax, [esp + 0x18]
push ebp
push eax
call fcn.00472060
add esp, 8
test eax, eax
jne 0x414c0e
mov eax, dword [esp + 0x14]
cmp eax, ebp
jne 0x414c00
lea eax, [esp + 0x18]
push ebp
push eax
call fcn.00472240
add esp, 8
test eax, eax
je 0x414c39
add esi, 2
push 0x5c
push esi
call fcn.0058989f
add esp, 8
lea ecx, [esp + 0x14]
mov esi, eax
mov byte [esp + 0x1d0], 6
call fcn.00401070
cmp esi, ebp
jne 0x414b8c
jmp 0x414c4a
lea ecx, [esp + 0x14]
mov byte [esp + 0x1d0], 6
call fcn.00401070
push 0x2000
call fcn.00589cd0
add esp, 4
cmp eax, ebp
mov dword [esp + 0x68], eax
jne 0x414c9f
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1d0], 1
call fcn.00401070
lea ecx, [esp + 0x20]
mov byte [esp + 0x1d0], 0
call fcn.00401070
lea ecx, [esp + 0x6c]
mov dword [esp + 0x1d0], 0xffffffff
call fcn.00401070
mov eax, 0xffffff98
jmp 0x41506b
xor ebp, ebp
mov byte [esp + 0x13], 0
mov dword [esp + 0x44], ebp
mov dword [esp + 0x4c], ebp
mov word [esp + 0x48], bp
mov eax, dword [esp + 0x1d8]
mov byte [esp + 0x1d0], 0xa
push eax
call fcn.00577a10
mov ebx, eax
add esp, 4
cmp ebx, ebp
jne 0x415008
mov eax, dword [esp + 0x20]
cmp eax, ebp
jne 0x414ce1
lea eax, [esp + 0x24]
push 0x65e0d8
push eax
call fcn.0058aa8f
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x414e07
mov eax, dword [esp + 0x20]
cmp eax, ebp
jne 0x414d05
lea eax, [esp + 0x24]
mov ecx, str._s
test ecx, ecx
je 0x414dde
cmp eax, ebp
je 0x414dde
push eax
lea ecx, [esp + 0x3c]
call fcn.00403af0
lea ecx, [esp + 0x44]
mov byte [esp + 0x1d0], 0xb
call fcn.00401070
push str._s
lea ecx, [esp + 0x60]
call fcn.00401e50
mov esi, dword [esp + 0x64]
lea ecx, [esp + 0x38]
mov byte [esp + 0x1d0], 0xc
call fcn.00401ed0
push eax
call fcn.00589432
lea esi, [eax + esi + 2]
lea ebp, [esi + esi]
push ebp
call fcn.005a1be9
mov edi, eax
add esp, 8
test edi, edi
mov dword [esp + 0x44], edi
je 0x414dba
mov ecx, ebp
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [esp + 0x38]
call fcn.00401ed0
push eax
lea ecx, [esp + 0x60]
call fcn.00401ed0
push eax
mov eax, dword [esp + 0x4c]
push esi
push eax
call fcn.005893c2
mov ecx, dword [esp + 0x54]
push ecx
call fcn.00589432
add esp, 0x14
mov dword [esp + 0x4c], eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1d0], 0xb
call fcn.00401070
lea ecx, [esp + 0x38]
mov byte [esp + 0x1d0], 0xa
call fcn.00401070
xor ebp, ebp
mov eax, dword [esp + 0x44]
cmp eax, ebp
jne 0x414dea
lea eax, [esp + 0x48]
push 0x65e0d8
push eax
call fcn.0058aa8f
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x415008
mov byte [esp + 0x13], 1
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0x1d8]
push 0x2000
push edi
push edx
call fcn.00577d50
mov ebx, eax
add esp, 0xc
cmp ebx, ebp
jl 0x414e5c
jle 0x414e5c
push esi
push 1
push ebx
push edi
call fcn.0058a925
add esp, 0x10
cmp eax, 1
jne 0x414e59
mov eax, dword [esp + 0x1d8]
push 0x2000
push edi
push eax
call fcn.00577d50
mov ebx, eax
add esp, 0xc
cmp ebx, ebp
jge 0x414e27
jmp 0x414e5c
or ebx, 0xffffffff
push esi
call fcn.0058a8a8
lea ecx, [esp + 0x7c]
push str.idmcchandler.dll
push ecx
call fcn.00589520
add esp, 0xc
test eax, eax
jne 0x414e92
lea edx, [esp + 0x78]
push str.idmcchandler64.dll
push edx
call fcn.00589520
add esp, 8
test eax, eax
je 0x414fe2
mov al, byte [esp + 0x13]
test al, al
je 0x414ea8
mov eax, dword [esp + 0x44]
cmp eax, ebp
jne 0x414eb4
lea eax, [esp + 0x48]
jmp 0x414eb4
mov eax, dword [esp + 0x20]
cmp eax, ebp
jne 0x414eb4
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x54]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x5c], ebp
mov word [esp + 0x58], bp
call fcn.00401ee0
mov dword [esp + 0x14], ebp
mov dword [esp + 0x1c], ebp
mov word [esp + 0x18], bp
lea eax, [esp + 0x78]
push str.idmcchandler.dll
push eax
mov byte [esp + 0x1d8], 0xe
call fcn.00589520
add esp, 8
mov ecx, 0x65e084
test eax, eax
jne 0x414f00
mov ecx, 0x65e05c
mov eax, dword [0x687b08]
cmp eax, ebp
jne 0x414f0e
mov eax, 0x687b0c
push ecx
push eax
push 0x65bff8
lea ecx, [esp + 0x20]
call fcn.004104f0
mov eax, dword [esp + 0x14]
cmp eax, ebp
mov ecx, eax
jne 0x414f2c
lea ecx, [esp + 0x18]
mov eax, dword [esp + 0x50]
cmp eax, ebp
jne 0x414f38
lea eax, [esp + 0x54]
push ebp
push ebp
push ecx
push eax
call fcn.00471cc0
add esp, 0x10
test eax, eax
jne 0x414fc0
lea ecx, [esp + 0x38]
call fcn.00415090
lea ecx, [esp + 0x14]
mov byte [esp + 0x1d0], 0xf
call fcn.00401ed0
push eax
push 0x65e058
lea ecx, [esp + 0x40]
call fcn.00413490
push ebp
push ebp
lea ecx, [esp + 0x40]
call fcn.00401ed0
push eax
lea ecx, [esp + 0x5c]
call fcn.00401ed0
push eax
call fcn.00471cc0
add esp, 0x10
test eax, eax
je 0x414faf
lea ecx, [esp + 0x14]
call fcn.00401ed0
push eax
lea ecx, [esp + 0x3c]
call fcn.00401ed0
push eax
call fcn.004147c0
add esp, 8
lea ecx, [esp + 0x38]
mov byte [esp + 0x1d0], 0xe
call fcn.00401070
lea ecx, [esp + 0x14]
mov byte [esp + 0x1d0], 0xd
call fcn.00401070
lea ecx, [esp + 0x50]
mov byte [esp + 0x1d0], 0xa
call fcn.00401070
mov al, byte [esp + 0x13]
test al, al
je 0x41500c
lea ecx, [esp + 0x20]
call fcn.00401ed0
push eax
lea ecx, [esp + 0x48]
call fcn.00401ed0
push eax
call fcn.004147c0
add esp, 8
jmp 0x41500c
mov edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x1d8]
push ecx
call fcn.00577f40
push edi
call fcn.005895ef
add esp, 8
lea ecx, [esp + 0x44]
mov byte [esp + 0x1d0], 6
call fcn.00401070
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1d0], 1
call fcn.00401070
lea ecx, [esp + 0x20]
mov byte [esp + 0x1d0], 0
call fcn.00401070
lea ecx, [esp + 0x6c]
mov dword [esp + 0x1d0], 0xffffffff
call fcn.00401070
mov eax, ebx
mov ecx, dword [esp + 0x1c8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c4
ret