Function at 0x46a460
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.0046a9c0
lea ecx, [esp + 0x15c]
call fcn.00435900
push edi
lea ecx, [esp + 0x160]
mov byte [esp + 0x29c], 1
call fcn.0046a8e0
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 0x46a52f
mov eax, dword [esp + 0x3c]
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
add eax, 4
push eax
call ebx
cmp eax, 0xffffffff
je 0x46a54d
shr eax, 4
not al
and al, 1
jne 0x46a5f7
cmp byte [esp + 0x278], 0
lea eax, [esp + 0x168]
jne 0x46a565
mov eax, dword [esp + 0x164]
add eax, 4
push eax
call ebx
cmp eax, 0xffffffff
je 0x46a579
shr eax, 4
not al
and al, 1
jne 0x46a5f7
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 0x46a5c5
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x46a5c5
push eax
call fcn.004c6103
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x46a6d5
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
cmp eax, edx
je 0x46a6d5
push eax
call fcn.004c6103
add esp, 4
xor al, al
jmp 0x46a895
cmp byte [esp + 0x150], 0
lea eax, [esp + 0x40]
jne 0x46a609
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [eax + 4]
push esi
lea ebx, [esp + 0x1c]
lea ecx, [esp + 0x24]
call fcn.0046fec0
test al, al
jne 0x46a762
push 0
lea edx, [esp + 0x38]
push edx
push esi
lea ecx, [esp + 0x168]
call fcn.00436d80
test al, al
jne 0x46a6dc
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 0x46a681
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x46a672
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x46a6b2
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x46a6b2
push eax
call fcn.004c6103
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x46a6d5
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
cmp eax, edx
je 0x46a6d5
push eax
call fcn.004c6103
add esp, 4
xor al, al
jmp 0x46a895
cmp byte [esp + 0x150], 0
lea eax, [esp + 0x40]
jne 0x46a6ee
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [eax + 4]
push esi
lea ebx, [esp + 0x1c]
lea ecx, [esp + 0x24]
call fcn.0046fec0
test al, al
jne 0x46a762
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 0x46a746
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x46a737
lea ecx, [esp + 0x15c]
call fcn.00438c80
lea ecx, [esp + 0x34]
call fcn.00438c80
xor al, al
jmp 0x46a895
mov ebx, dword [esp + 0x18]
push esi
mov eax, ebx
mov ecx, edi
call fcn.0047c1d0
test eax, eax
jne 0x46a808
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 0x46a7b6
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x46a7a7
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x46a7e7
mov eax, dword [esp + 0x164]
lea edx, [esp + 0x168]
cmp eax, edx
je 0x46a7e7
push eax
call fcn.004c6103
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x46a6d5
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x40]
cmp eax, ecx
jmp 0x46a6ca
mov edx, dword [esp + 0x14]
push ebx
push edx
push ebx
push eax
call fcn.004c9cf6
mov byte [esp + 0x2a8], 1
mov esi, dword [esp + 0x3c]
add esp, 0x10
test esi, esi
je 0x46a83f
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 0x46a830
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x46a870
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x46a870
push eax
call fcn.004c6103
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x46a893
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
cmp eax, edx
je 0x46a893
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