Function at 0x586380
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6f7894
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push esi
push edi
mov eax, dword [0x7ce4e4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
lea ecx, [esi + 4]
call fcn.00585740
lea ebx, [esi + 0x20]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov byte [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [ebp - 0x14], ebx
push 0x28
mov dword [ebp - 4], 0
mov dword [ebx], 0
mov dword [ebx + 4], 0
call fcn.005be217
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebx], eax
lea edi, [esi + 0x28]
mov byte [ebp - 4], 1
mov dword [ebp - 0x14], edi
push 0x28
mov dword [edi], 0
mov dword [edi + 4], 0
call fcn.005be217
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [edi], eax
lea edi, [esi + 0x30]
mov byte [ebp - 4], 2
mov dword [ebp - 0x14], edi
push 0x28
mov dword [edi], 0
mov dword [edi + 4], 0
call fcn.005be217
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [edi], eax
lea edi, [esi + 0x38]
mov byte [ebp - 4], 3
mov dword [ebp - 0x14], edi
push 0x28
mov dword [edi], 0
mov dword [edi + 4], 0
call fcn.005be217
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [edi], eax
lea edi, [esi + 0x40]
mov byte [ebp - 4], 4
mov dword [ebp - 0x14], edi
push 0x28
mov dword [edi], 0
mov dword [edi + 4], 0
call fcn.005be217
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [edi], eax
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], 0
mov dword [esi + 0x50], 0
lea eax, [esi + 0x54]
mov byte [ebp - 4], 6
mov dword [esi + 0x58], vtable.sgime_kernelbase_namespace::t_topNByHeap_struct__sgime_core_pinyin_::t_sysDict::t_wordInfo___struct__sgime_core_pinyin_::t_WordPrediction::tWordFreqCmp_.0
mov dword [esi + 0x64], 0
mov dword [esi + 0x5c], eax
push 0
mov dword [esi + 0x60], 0x20
call fcn.004eddf0
mov eax, dword [esi + 0x60]
add esp, 0x18
test eax, eax
jle 0x58651a
xor ecx, ecx
add eax, 2
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.005be278
add esp, 4
jmp 0x58651c
xor eax, eax
cmp dword [esi + 0x5c], 0
mov dword [esi + 0x64], eax
mov dword [esi + 0x68], 1
je 0x586534
test eax, eax
je 0x586534
mov al, 1
jmp 0x586536
xor al, al
mov byte [esi + 0x6c], al
push 0x50
mov byte [ebp - 4], 7
call fcn.005be217
mov edi, eax
add esp, 4
mov dword [ebp - 0x14], edi
mov byte [ebp - 4], 8
test edi, edi
je 0x586591
mov dword [ebp - 0x1c], 0
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x18], eax
mov dword [eax + 0x24], 0
push 0
push 4
push 0x4000
mov ecx, edi
mov byte [ebp - 4], 9
call fcn.005144e0
push 0xff0
lea ecx, [edi + 0x40]
mov byte [ebp - 4], 0xb
call fcn.0058d8a0
jmp 0x586593
xor edi, edi
mov ecx, ebx
mov dword [esi], edi
call fcn.005866e0
lea ecx, [esi + 0x28]
call fcn.005866e0
lea ecx, [esi + 0x30]
call fcn.005866e0
lea ecx, [esi + 0x38]
call fcn.005866e0
lea ecx, [esi + 0x40]
call fcn.005866e0
mov eax, dword [esi + 0x48]
cmp eax, dword [esi + 0x4c]
je 0x5865c7
mov dword [esi + 0x4c], eax
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret