Function at 0x46a9a0
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.0046af00
lea ecx, [esp + 0x15c]
call fcn.00435d60
push edi
lea ecx, [esp + 0x160]
mov byte [esp + 0x29c], 1
call fcn.0046ae20
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 0x46aa6f
mov eax, dword [esp + 0x3c]
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
add eax, 4
push eax
call ebx
cmp eax, 0xffffffff
je 0x46aa8d
shr eax, 4
not al
and al, 1
jne 0x46ab37
cmp byte [esp + 0x278], 0
lea eax, [esp + 0x168]
jne 0x46aaa5
mov eax, dword [esp + 0x164]
add eax, 4
push eax
call ebx
cmp eax, 0xffffffff
je 0x46aab9
shr eax, 4
not al
and al, 1
jne 0x46ab37
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 0x46ab05
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x46ab05
push eax
call fcn.004cc2c0
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x46ac15
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
cmp eax, edx
je 0x46ac15
push eax
call fcn.004cc2c0
add esp, 4
xor al, al
jmp 0x46add5
cmp byte [esp + 0x150], 0
lea eax, [esp + 0x40]
jne 0x46ab49
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.00470410
test al, al
jne 0x46aca2
push 0
lea edx, [esp + 0x38]
push edx
push esi
lea ecx, [esp + 0x168]
call fcn.004371c0
test al, al
jne 0x46ac1c
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 0x46abc1
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x46abb2
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x46abf2
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x46abf2
push eax
call fcn.004cc2c0
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x46ac15
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
cmp eax, edx
je 0x46ac15
push eax
call fcn.004cc2c0
add esp, 4
xor al, al
jmp 0x46add5
cmp byte [esp + 0x150], 0
lea eax, [esp + 0x40]
jne 0x46ac2e
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.00470410
test al, al
jne 0x46aca2
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 0x46ac86
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x46ac77
lea ecx, [esp + 0x15c]
call fcn.00439080
lea ecx, [esp + 0x34]
call fcn.00439080
xor al, al
jmp 0x46add5
mov ebx, dword [esp + 0x18]
push esi
mov eax, ebx
mov ecx, edi
call fcn.0047c730
test eax, eax
jne 0x46ad48
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 0x46acf6
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x46ace7
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x46ad27
mov eax, dword [esp + 0x164]
lea edx, [esp + 0x168]
cmp eax, edx
je 0x46ad27
push eax
call fcn.004cc2c0
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x46ac15
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x40]
cmp eax, ecx
jmp 0x46ac0a
mov edx, dword [esp + 0x14]
push ebx
push edx
push ebx
push eax
call fcn.004cfe0d
mov byte [esp + 0x2a8], 1
mov esi, dword [esp + 0x3c]
add esp, 0x10
test esi, esi
je 0x46ad7f
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 0x46ad70
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x46adb0
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x46adb0
push eax
call fcn.004cc2c0
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x46add3
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
cmp eax, edx
je 0x46add3
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