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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5079e1
mov eax, dword fs:[0]
push eax
sub esp, 0x280
mov eax, dword [0x5375a0]
xor eax, esp
mov dword [esp + 0x278], eax
push ebx
push esi
push edi
mov eax, dword [0x5375a0]
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.00435900
xor ebx, ebx
push edi
lea ecx, [esp + 0x38]
mov dword [esp + 0x29c], ebx
call fcn.00465f10
lea ecx, [esp + 0x15c]
call fcn.00435900
push edi
lea ecx, [esp + 0x160]
mov byte [esp + 0x29c], 1
call fcn.00465ff0
mov dword [esp + 0x20], fcn.004c61e0
mov dword [esp + 0x24], fcn.004c83aa
mov dword [esp + 0x28], fcn.004c6103
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 0x465b0f
mov eax, dword [esp + 0x3c]
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
add eax, 4
push eax
call ebx
cmp eax, 0xffffffff
je 0x465b2d
shr eax, 4
not al
and al, 1
jne 0x465bd7
cmp byte [esp + 0x278], 0
lea eax, [esp + 0x168]
jne 0x465b45
mov eax, dword [esp + 0x164]
add eax, 4
push eax
call ebx
cmp eax, 0xffffffff
je 0x465b59
shr eax, 4
not al
and al, 1
jne 0x465bd7
mov ecx, esi
call fcn.00437ec0
push str.not_find_hotdict_file.
push 0x5192f4
mov edx, eax
call fcn.004392f0
add esp, 8
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x465ba5
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x465ba5
push eax
call fcn.004c6103
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x465cb6
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
cmp eax, edx
je 0x465cb6
push eax
call fcn.004c6103
add esp, 4
xor al, al
jmp 0x465e8b
cmp byte [esp + 0x150], 0
lea eax, [esp + 0x40]
jne 0x465be9
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.0046fab0
test al, al
jne 0x465d4b
push 0
lea eax, [esp + 0x38]
push eax
push esi
lea ecx, [esp + 0x168]
call fcn.00436d80
test al, al
jne 0x465cbd
mov ecx, esi
call fcn.00437ec0
push str.copyfile_failed.
push 0x5192f4
mov edx, eax
call fcn.004392f0
mov byte [esp + 0x2a0], 1
mov esi, dword [esp + 0x34]
add esp, 8
test esi, esi
je 0x465c62
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x465c53
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x465c93
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x465c93
push eax
call fcn.004c6103
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x465cb6
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
cmp eax, edx
je 0x465cb6
push eax
call fcn.004c6103
add esp, 4
xor al, al
jmp 0x465e8b
cmp byte [esp + 0x150], 0
lea eax, [esp + 0x40]
jne 0x465ccf
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.0046fab0
test al, al
jne 0x465d4b
mov ecx, esi
call fcn.00437ec0
push str.load_hot_dict_failed.
push 0x5192f4
mov edx, eax
call fcn.004392f0
mov byte [esp + 0x2a0], 1
mov esi, dword [esp + 0x34]
add esp, 8
test esi, esi
je 0x465d2f
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 0x465d20
lea ecx, [esp + 0x15c]
call fcn.00438c80
lea ecx, [esp + 0x34]
call fcn.00438c80
xor al, al
jmp 0x465e8b
mov ebx, dword [esp + 0x18]
push esi
mov eax, ebx
mov ecx, edi
call fcn.0047c1d0
test eax, eax
jne 0x465e02
mov ecx, esi
call fcn.00437ec0
push 0x524f10
push 0x5192f4
mov edx, eax
call fcn.004392f0
mov byte [esp + 0x2a0], 1
mov esi, dword [esp + 0x34]
add esp, 8
test esi, esi
je 0x465d9f
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x465d90
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x465dd0
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x465dd0
push eax
call fcn.004c6103
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x465cb6
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
cmp eax, edx
je 0x465cb6
push eax
call fcn.004c6103
add esp, 4
xor al, al
jmp 0x465e8b
mov ecx, dword [esp + 0x14]
push ebx
push ecx
push ebx
push eax
call fcn.004c9cf6
mov byte [esp + 0x2a8], 1
mov esi, dword [esp + 0x3c]
add esp, 0x10
test esi, esi
je 0x465e35
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x465e26
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x465e66
mov eax, dword [esp + 0x164]
lea edx, [esp + 0x168]
cmp eax, edx
je 0x465e66
push eax
call fcn.004c6103
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x465e89
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x40]
cmp eax, ecx
je 0x465e89
push eax
call fcn.004c6103
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.004c60f4
mov esp, ebp
pop ebp
ret 4