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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x50f411
mov eax, dword fs:[0]
push eax
sub esp, 0x280
mov eax, dword [0x5405a0]
xor eax, esp
mov dword [esp + 0x278], eax
push ebx
push esi
push edi
mov eax, dword [0x5405a0]
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.00436e90
xor ebx, ebx
push edi
lea ecx, [esp + 0x38]
mov dword [esp + 0x29c], ebx
call fcn.0046f120
lea ecx, [esp + 0x15c]
call fcn.00436e90
push edi
lea ecx, [esp + 0x160]
mov byte [esp + 0x29c], 1
call fcn.0046f200
mov dword [esp + 0x20], fcn.004ccfcd
mov dword [esp + 0x24], fcn.004cf168
mov dword [esp + 0x28], fcn.004ccef0
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 0x46ed1f
mov eax, dword [esp + 0x3c]
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
add eax, 4
push eax
call ebx
cmp eax, 0xffffffff
je 0x46ed3d
shr eax, 4
not al
and al, 1
jne 0x46ede7
cmp byte [esp + 0x278], 0
lea eax, [esp + 0x168]
jne 0x46ed55
mov eax, dword [esp + 0x164]
add eax, 4
push eax
call ebx
cmp eax, 0xffffffff
je 0x46ed69
shr eax, 4
not al
and al, 1
jne 0x46ede7
mov ecx, esi
call fcn.00439450
push str.not_find_hotdict_file.
push 0x52139c
mov edx, eax
call fcn.0043a8a0
add esp, 8
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x46edb5
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x46edb5
push eax
call fcn.004ccef0
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x46eec6
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
cmp eax, edx
je 0x46eec6
push eax
call fcn.004ccef0
add esp, 4
xor al, al
jmp 0x46f09b
cmp byte [esp + 0x150], 0
lea eax, [esp + 0x40]
jne 0x46edf9
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.00478a50
test al, al
jne 0x46ef5b
push 0
lea eax, [esp + 0x38]
push eax
push esi
lea ecx, [esp + 0x168]
call fcn.00438310
test al, al
jne 0x46eecd
mov ecx, esi
call fcn.00439450
push str.copyfile_failed.
push 0x52139c
mov edx, eax
call fcn.0043a8a0
mov byte [esp + 0x2a0], 1
mov esi, dword [esp + 0x34]
add esp, 8
test esi, esi
je 0x46ee72
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x46ee63
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x46eea3
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x46eea3
push eax
call fcn.004ccef0
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x46eec6
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
cmp eax, edx
je 0x46eec6
push eax
call fcn.004ccef0
add esp, 4
xor al, al
jmp 0x46f09b
cmp byte [esp + 0x150], 0
lea eax, [esp + 0x40]
jne 0x46eedf
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.00478a50
test al, al
jne 0x46ef5b
mov ecx, esi
call fcn.00439450
push str.load_hot_dict_failed.
push 0x52139c
mov edx, eax
call fcn.0043a8a0
mov byte [esp + 0x2a0], 1
mov esi, dword [esp + 0x34]
add esp, 8
test esi, esi
je 0x46ef3f
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 0x46ef30
lea ecx, [esp + 0x15c]
call fcn.0043a230
lea ecx, [esp + 0x34]
call fcn.0043a230
xor al, al
jmp 0x46f09b
mov ebx, dword [esp + 0x18]
push esi
mov eax, ebx
mov ecx, edi
call fcn.00484e90
test eax, eax
jne 0x46f012
mov ecx, esi
call fcn.00439450
push 0x52d494
push 0x52139c
mov edx, eax
call fcn.0043a8a0
mov byte [esp + 0x2a0], 1
mov esi, dword [esp + 0x34]
add esp, 8
test esi, esi
je 0x46efaf
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x46efa0
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x46efe0
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x46efe0
push eax
call fcn.004ccef0
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x46eec6
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
cmp eax, edx
je 0x46eec6
push eax
call fcn.004ccef0
add esp, 4
xor al, al
jmp 0x46f09b
mov ecx, dword [esp + 0x14]
push ebx
push ecx
push ebx
push eax
call fcn.004d0a60
mov byte [esp + 0x2a8], 1
mov esi, dword [esp + 0x3c]
add esp, 0x10
test esi, esi
je 0x46f045
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x46f036
cmp byte [esp + 0x278], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x15c], esi
jne 0x46f076
mov eax, dword [esp + 0x164]
lea edx, [esp + 0x168]
cmp eax, edx
je 0x46f076
push eax
call fcn.004ccef0
add esp, 4
cmp byte [esp + 0x150], 0
mov dword [esp + 0x34], esi
jne 0x46f099
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x40]
cmp eax, ecx
je 0x46f099
push eax
call fcn.004ccef0
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.004ccee1
mov esp, ebp
pop ebp
ret 4