Function at 0x421e60
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
lea ebp, [esp - 0x60]
sub esp, 0x60
push 0xffffffffffffffff
push 0x4759ad
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x490040]
xor eax, ebp
mov dword [ebp + 0x5c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
cmp dword [edi + 0x14], 0
jne 0x421f5e
mov eax, dword fs:[0x2c]
movaps xmm0, xmmword [0x488760]
movups xmmword [ebp + 0x24], xmm0
mov dword [ebp + 0x54], 0xb4e8a6f
mov ecx, dword [eax]
movaps xmm0, xmmword [0x487670]
mov eax, dword [0x4968e8]
movups xmmword [ebp + 0x34], xmm0
mov byte [ebp + 0x58], 0x8b
movaps xmm0, xmmword [0x488000]
movups xmmword [ebp + 0x44], xmm0
cmp eax, dword [ecx + 4]
jle 0x421f40
push 0x4968e8
call fcn.00452992
add esp, 4
cmp dword [0x4968e8], 0xffffffff
jne 0x421f40
xorps xmm0, xmm0
mov byte [0x496921], 1
movlpd qword [ebp + 0x18], xmm0
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
nop dword [eax + eax]
mov al, byte [ebp + ecx + 0x24]
mov byte [ecx + 0x4968ec], al
add ecx, 1
adc edx, 0
test edx, edx
jne 0x421f29
cmp ecx, 0x35
jb 0x421f10
push 0x47ad20
call fcn.00452c62
push 0x4968e8
call fcn.00452941
add esp, 8
mov ecx, 0x4968ec
call fcn.0041ecd0
push 0x4968ec
push 1
call fcn.00401610
add esp, 8
jmp 0x42267a
cmp dword [edi + 0x18], 7
lea esi, [edi + 4]
mov eax, esi
jbe 0x421f6b
mov eax, dword [esi]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4225ae
test al, 0x10
jne 0x4225ae
mov ecx, edi
mov dword [ebp + 0x10], 0
mov dword [ebp + 0x14], 0
call fcn.00421d10
cmp dword [esi + 0x14], 7
jbe 0x421fa0
mov esi, dword [esi]
push 0
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 4]
push eax
lea eax, [ebp]
push eax
push 0
push 2
push 0x400
push esi
push 1
call dword [sym.imp.CRYPT32.dll_CryptQueryObject]
test eax, eax
jne 0x422138
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x80092009
je 0x42210c
push ecx
mov edx, eax
lea ecx, [ebp + 0x40]
call fcn.0041a470
add esp, 4
mov esi, eax
mov dword [ebp - 4], 0
cmp dword [esi + 0x14], 7
jbe 0x422000
mov esi, dword [esi]
add edi, 4
cmp dword [edi + 0x14], 7
jbe 0x42200b
mov edi, dword [edi]
movaps xmm0, xmmword [0x488960]
mov eax, dword fs:[0x2c]
movups xmmword [ebp - 0x50], xmm0
mov byte [ebp - 0x10], 0x1b
movaps xmm0, xmmword [0x488b70]
mov ecx, dword [eax]
mov eax, dword [0x496970]
movups xmmword [ebp - 0x40], xmm0
movaps xmm0, xmmword [0x487fc0]
movups xmmword [ebp - 0x30], xmm0
movaps xmm0, xmmword [0x487890]
movups xmmword [ebp - 0x20], xmm0
cmp eax, dword [ecx + 4]
jle 0x4220b0
push 0x496970
call fcn.00452992
add esp, 4
cmp dword [0x496970], 0xffffffff
jne 0x4220b0
xorps xmm0, xmm0
mov byte [0x4968a1], 1
movlpd qword [ebp + 0x18], xmm0
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
nop dword [eax + eax]
mov al, byte [ebp + ecx - 0x50]
mov byte [ecx + 0x496860], al
add ecx, 1
adc edx, 0
test edx, edx
jne 0x422099
cmp ecx, 0x41
jb 0x422080
push 0x47acc0
call fcn.00452c62
push 0x496970
call fcn.00452941
add esp, 8
mov ecx, 0x496860
call fcn.0041eeb0
push esi
push edi
push 0x496860
push 1
call fcn.00401610
mov ecx, dword [ebp + 0x54]
add esp, 0x10
cmp ecx, 7
jbe 0x422131
mov edx, dword [ebp + 0x40]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4220fb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x422699
push ecx
push edx
call fcn.00452c7c
add esp, 8
xor esi, esi
jmp 0x422589
add edi, 4
cmp dword [edi + 0x14], 7
jbe 0x422117
mov edi, dword [edi]
call fcn.004226a0
mov esi, eax
mov ecx, esi
call fcn.0040b0f0
push edi
push esi
push 1
call fcn.00401610
add esp, 0xc
xor esi, esi
jmp 0x422589
mov esi, dword [sym.imp.CRYPT32.dll_CryptMsgGetParam]
lea eax, [ebp + 0xc]
push eax
push 0
push 0
push 6
push dword [ebp + 0x14]
call esi
test eax, eax
jne 0x422220
mov eax, dword fs:[0x2c]
movaps xmm0, xmmword [0x487f60]
movups xmmword [ebp + 0x2c], xmm0
mov dword [ebp + 0x4c], 0x45559b7a
mov ecx, dword [eax]
movaps xmm0, xmmword [0x4885d0]
mov eax, dword [0x496ad4]
movups xmmword [ebp + 0x3c], xmm0
mov dword [ebp + 0x50], 0x67dc85e5
mov dword [ebp + 0x54], 0x42488875
mov byte [ebp + 0x58], 0x8b
cmp eax, dword [ecx + 4]
jle 0x422200
push 0x496ad4
call fcn.00452992
add esp, 4
cmp dword [0x496ad4], 0xffffffff
jne 0x422200
xorps xmm0, xmm0
mov byte [0x496a9d], 1
movlpd qword [ebp + 0x18], xmm0
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
nop dword [eax]
nop dword [eax + eax]
mov al, byte [ebp + ecx + 0x2c]
mov byte [ecx + 0x496a70], al
add ecx, 1
adc edx, 0
test edx, edx
jne 0x4221e9
cmp ecx, 0x2d
jb 0x4221d0
push 0x47ac60
call fcn.00452c62
push 0x496ad4
call fcn.00452941
add esp, 8
mov ecx, 0x496a70
call fcn.00415af0
push 0x496a70
push 1
call fcn.00401610
add esp, 8
xor esi, esi
jmp 0x422589
push dword [ebp + 0xc]
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ebx, eax
test ebx, ebx
jne 0x422300
mov eax, dword fs:[0x2c]
movaps xmm0, xmmword [0x487c30]
movups xmmword [ebp + 0x2c], xmm0
mov dword [ebp + 0x4c], 0x45559b7a
mov ecx, dword [eax]
movaps xmm0, xmmword [0x4885e0]
mov eax, dword [0x496924]
movups xmmword [ebp + 0x3c], xmm0
mov dword [ebp + 0x50], 0x77d285e5
mov dword [ebp + 0x54], 0x5859897d
mov byte [ebp + 0x58], 0x8b
cmp eax, dword [ecx + 4]
jle 0x4222e0
push 0x496924
call fcn.00452992
add esp, 4
cmp dword [0x496924], 0xffffffff
jne 0x4222e0
xorps xmm0, xmm0
mov byte [0x4967ad], 1
movlpd qword [ebp + 0x18], xmm0
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
nop dword [eax]
nop dword [eax + eax]
mov al, byte [ebp + ecx + 0x2c]
mov byte [ecx + 0x496780], al
add ecx, 1
adc edx, 0
test edx, edx
jne 0x4222c9
cmp ecx, 0x2d
jb 0x4222b0
push 0x47ac30
call fcn.00452c62
push 0x496924
call fcn.00452941
add esp, 8
mov ecx, 0x496780
call fcn.00415af0
push 0x496780
push 1
call fcn.00401610
add esp, 8
xor esi, esi
jmp 0x422589
lea eax, [ebp + 0xc]
push eax
push ebx
push 0
push 6
push dword [ebp + 0x14]
call esi
test eax, eax
jne 0x4223d0
mov eax, dword fs:[0x2c]
movaps xmm0, xmmword [0x487f60]
movups xmmword [ebp + 0x34], xmm0
mov dword [ebp + 0x54], 0x45559b7a
mov ecx, dword [eax]
movaps xmm0, xmmword [0x4885d0]
mov eax, dword [0x496974]
movups xmmword [ebp + 0x44], xmm0
mov word [ebp + 0x58], 0xa5e5
cmp eax, dword [ecx + 4]
jle 0x4223b0
push 0x496974
call fcn.00452992
add esp, 4
cmp dword [0x496974], 0xffffffff
jne 0x4223b0
xorps xmm0, xmm0
mov byte [0x496b72], 1
movlpd qword [ebp + 0x18], xmm0
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
nop dword [eax]
mov al, byte [ebp + ecx + 0x34]
mov byte [ecx + 0x496b4c], al
add ecx, 1
adc edx, 0
test edx, edx
jne 0x422399
cmp ecx, 0x26
jb 0x422380
push 0x47ac00
call fcn.00452c62
push 0x496974
call fcn.00452941
add esp, 8
mov ecx, 0x496b4c
call fcn.00415f30
push 0x496b4c
push 1
call fcn.00401610
add esp, 8
xor esi, esi
jmp 0x422582
push ebx
mov ecx, edi
call fcn.00422780
mov esi, dword fs:[0x2c]
test eax, eax
jne 0x4224a9
movaps xmm0, xmmword [0x488930]
mov ecx, dword [esi]
mov eax, dword [0x4969ac]
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x14], 0x4453866f
movaps xmm0, xmmword [0x488270]
movups xmmword [ebp - 0x44], xmm0
mov byte [ebp - 0x10], 0x8b
movaps xmm0, xmmword [0x4883b0]
movups xmmword [ebp - 0x34], xmm0
movaps xmm0, xmmword [0x487c70]
movups xmmword [ebp - 0x24], xmm0
cmp eax, dword [ecx + 4]
jle 0x422490
push 0x4969ac
call fcn.00452992
add esp, 4
cmp dword [0x4969ac], 0xffffffff
jne 0x422490
xorps xmm0, xmm0
mov byte [0x49696d], 1
movlpd qword [ebp + 0x18], xmm0
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
nop dword [eax + eax]
mov al, byte [ebp + ecx - 0x54]
mov byte [ecx + 0x496928], al
add ecx, 1
adc edx, 0
test edx, edx
jne 0x422479
cmp ecx, 0x45
jb 0x422460
push 0x47abd0
call fcn.00452c62
push 0x4969ac
call fcn.00452941
add esp, 8
mov ecx, 0x496928
call fcn.00423230
push 0x496928
push 1
call fcn.00401610
add esp, 8
push ebx
push dword [ebp + 0x10]
mov ecx, edi
call fcn.00422900
test eax, eax
jne 0x42257d
movaps xmm0, xmmword [0x487aa0]
mov ecx, dword [esi]
mov eax, dword [0x4967e0]
movups xmmword [ebp + 0x20], xmm0
mov dword [ebp + 0x50], 0x58538975
movaps xmm0, xmmword [0x4881f0]
movups xmmword [ebp + 0x30], xmm0
mov dword [ebp + 0x54], 0x6bc4c4e6
movaps xmm0, xmmword [0x488130]
movups xmmword [ebp + 0x40], xmm0
mov word [ebp + 0x58], 0x8174
mov byte [ebp + 0x5a], 0x3c
cmp eax, dword [ecx + 4]
jle 0x422560
push 0x4967e0
call fcn.00452992
add esp, 4
cmp dword [0x4967e0], 0xffffffff
jne 0x422560
xorps xmm0, xmm0
mov byte [0x4968e3], 1
movlpd qword [ebp + 0x18], xmm0
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
nop
mov al, byte [ebp + ecx + 0x20]
mov byte [ecx + 0x4968a8], al
add ecx, 1
adc edx, 0
test edx, edx
jne 0x422549
cmp ecx, 0x3b
jb 0x422530
push 0x47aba0
call fcn.00452c62
push 0x4967e0
call fcn.00452941
add esp, 8
mov ecx, 0x4968a8
call fcn.0041f150
push 0x4968a8
push 1
call fcn.00401610
add esp, 8
xor esi, esi
jmp 0x422582
mov esi, 1
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x422599
push 0
push eax
call dword [sym.imp.CRYPT32.dll_CertCloseStore]
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x4225a7
push eax
call dword [sym.imp.CRYPT32.dll_CryptMsgClose]
mov eax, esi
jmp 0x42267c
cmp dword [esi + 0x14], 7
jbe 0x4225b6
mov esi, dword [esi]
mov eax, dword fs:[0x2c]
movaps xmm0, xmmword [0x488160]
movups xmmword [ebp + 0x30], xmm0
mov dword [ebp + 0x50], 0x5f53893b
mov ecx, dword [eax]
movaps xmm0, xmmword [0x488b50]
mov eax, dword [0x496ad8]
movups xmmword [ebp + 0x40], xmm0
mov dword [ebp + 0x54], 0x228ac1e5
mov word [ebp + 0x58], 0xbc3e
mov byte [ebp + 0x5a], 0x3c
cmp eax, dword [ecx + 4]
jle 0x422660
push 0x496ad8
call fcn.00452992
add esp, 4
cmp dword [0x496ad8], 0xffffffff
jne 0x422660
xorps xmm0, xmm0
mov byte [0x496a4f], 1
movlpd qword [ebp + 0x18], xmm0
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
nop dword [eax]
nop dword [eax + eax]
mov al, byte [ebp + ecx + 0x30]
mov byte [ecx + 0x496a24], al
add ecx, 1
adc edx, 0
test edx, edx
jne 0x422649
cmp ecx, 0x2b
jb 0x422630
push 0x47acf0
call fcn.00452c62
push 0x496ad8
call fcn.00452941
add esp, 8
mov ecx, 0x496a24
call fcn.0041f030
push esi
push 0x496a24
push 1
call fcn.00401610
add esp, 0xc
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x5c]
xor ecx, ebp
call fcn.00452933
lea esp, [ebp + 0x60]
pop ebp
ret
call fcn.004579bf
int3