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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x50dba1
mov eax, dword fs:[0]
push eax
sub esp, 0x280
mov eax, dword [0x53f5a0]
xor eax, esp
mov dword [esp + 0x278], eax
push ebx
push esi
push edi
mov eax, dword [0x53f5a0]
xor eax, esp
push eax
lea eax, [esp + 0x290]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov edi, ecx
lea ecx, [esp + 0x34]
call fcn.00435d60
xor ebx, ebx
push edi
lea ecx, [esp + 0x38]
mov dword [esp + 0x29c], ebx
call fcn.00466310
lea ecx, [esp + 0x15c]
call fcn.00435d60
push edi
lea ecx, [esp + 0x160]
mov byte [esp + 0x29c], 1
call fcn.004663f0
mov dword [esp + 0x20], fcn.004cc39d
mov dword [esp + 0x24], fcn.004ce4c2
mov dword [esp + 0x28], fcn.004cc2c0
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], 0x1fff8
mov dword [esp + 0x1c], vtable.t_heap.0
mov byte [esp + 0x298], 2
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
lea eax, [esp + 0x40]
cmp byte [esp + 0x150], bl
jne 0x465f0f
mov eax, dword [esp + 0x3c]
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
add eax, 4
push eax
call ebx
cmp eax, 0xffffffff
je 0x465f2d
shr eax, 4
not al
and al, 1
jne 0x465fd7
cmp byte [esp + 0x278], 0
lea eax, [esp + 0x168]
jne 0x465f45
mov eax, dword [esp + 0x164]
add eax, 4
push eax
call ebx
cmp eax, 0xffffffff
je 0x465f59
shr eax, 4
not al
and al, 1
jne 0x465fd7
mov ecx, esi
call fcn.00438300
push str.not_find_hotdict_file.
push 0x51f1f4
mov edx, eax
call fcn.00439710
add esp, 8
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x465fa5
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x465fa5
push eax
call fcn.004cc2c0
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x4660b6
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
cmp eax, edx
je 0x4660b6
push eax
call fcn.004cc2c0
add esp, 4
xor al, al
jmp 0x46628b
cmp byte [esp + 0x150], 0
lea eax, [esp + 0x40]
jne 0x465fe9
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x18]
push ecx
push esi
lea edx, [esp + 0x24]
lea ecx, [eax + 4]
push edx
lea ebx, [esp + 0x20]
call fcn.00470000
test al, al
jne 0x46614b
push 0
lea eax, [esp + 0x38]
push eax
push esi
lea ecx, [esp + 0x168]
call fcn.004371c0
test al, al
jne 0x4660bd
mov ecx, esi
call fcn.00438300
push str.copyfile_failed.
push 0x51f1f4
mov edx, eax
call fcn.00439710
mov byte [esp + 0x2a0], 1
mov esi, dword [esp + 0x34]
add esp, 8
test esi, esi
je 0x466062
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x466053
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x466093
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x466093
push eax
call fcn.004cc2c0
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x4660b6
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
cmp eax, edx
je 0x4660b6
push eax
call fcn.004cc2c0
add esp, 4
xor al, al
jmp 0x46628b
cmp byte [esp + 0x150], 0
lea eax, [esp + 0x40]
jne 0x4660cf
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x18]
push ecx
push esi
lea edx, [esp + 0x24]
lea ecx, [eax + 4]
push edx
lea ebx, [esp + 0x20]
call fcn.00470000
test al, al
jne 0x46614b
mov ecx, esi
call fcn.00438300
push str.load_hot_dict_failed.
push 0x51f1f4
mov edx, eax
call fcn.00439710
mov byte [esp + 0x2a0], 1
mov esi, dword [esp + 0x34]
add esp, 8
test esi, esi
je 0x46612f
mov edi, dword [esp + 0x28]
lea esp, [esp]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x466120
lea ecx, [esp + 0x15c]
call fcn.00439080
lea ecx, [esp + 0x34]
call fcn.00439080
xor al, al
jmp 0x46628b
mov ebx, dword [esp + 0x18]
push esi
mov eax, ebx
mov ecx, edi
call fcn.0047c730
test eax, eax
jne 0x466202
mov ecx, esi
call fcn.00438300
push 0x52c930
push 0x51f1f4
mov edx, eax
call fcn.00439710
mov byte [esp + 0x2a0], 1
mov esi, dword [esp + 0x34]
add esp, 8
test esi, esi
je 0x46619f
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x466190
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x4661d0
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x4661d0
push eax
call fcn.004cc2c0
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x4660b6
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
cmp eax, edx
je 0x4660b6
push eax
call fcn.004cc2c0
add esp, 4
xor al, al
jmp 0x46628b
mov ecx, dword [esp + 0x14]
push ebx
push ecx
push ebx
push eax
call fcn.004cfe0d
mov byte [esp + 0x2a8], 1
mov esi, dword [esp + 0x3c]
add esp, 0x10
test esi, esi
je 0x466235
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x466226
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x466266
mov eax, dword [esp + 0x164]
lea edx, [esp + 0x168]
cmp eax, edx
je 0x466266
push eax
call fcn.004cc2c0
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x466289
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x40]
cmp eax, ecx
je 0x466289
push eax
call fcn.004cc2c0
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x290]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x278]
xor ecx, esp
call fcn.004cc2b1
mov esp, ebp
pop ebp
ret 4