Function at 0x4956a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x512c6c
mov eax, dword fs:[0]
push eax
sub esp, 0x284
mov eax, dword [0x56957c]
xor eax, esp
mov dword [esp + 0x27c], eax
push esi
push edi
mov eax, dword [0x56957c]
xor eax, esp
push eax
lea eax, [esp + 0x290]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
push 0x206
mov edi, edx
mov dword [esp + 0x14], eax
xor esi, esi
lea eax, [esp + 0x82]
xor edx, edx
push esi
push eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], ecx
mov word [esp + 0x88], dx
call fcn.004f2770
mov ecx, dword [edi + 0x24c]
mov edx, dword [ebp + 0xc]
mov eax, dword [ecx]
add esp, 0xc
push edx
mov edx, dword [eax + 0x10]
call edx
push eax
push str.Local_s.v_d.filemap.sogouime
lea eax, [esp + 0x88]
push 0x104
push eax
call fcn.004ed1b6
add esp, 0x14
mov dword [esp + 0x74], vtable.t_mutex::t_locker.0
mov dword [esp + 0x78], esi
mov dword [esp + 0x298], esi
mov edx, dword [edi + 0xc]
mov eax, dword [edx + 0xc]
lea esi, [edi + 0xc]
mov ecx, esi
mov dword [esp + 0x34], esi
call eax
test al, al
jne 0x495776
push str.t_mutex::Lock
push ebx
call fcn.004164e0
add esp, 8
jmp 0x495780
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push ebx
mov ecx, esi
call eax
test al, al
je 0x4957e1
mov ecx, dword [esp + 0x1c]
push ecx
lea edx, [esp + 0x80]
push edx
push edi
lea ecx, [esp + 0x1b]
mov edx, ebx
mov dword [esp + 0x84], esi
mov byte [esp + 0x1b], 0
call fcn.004954d0
test al, al
jne 0x4957f4
mov ecx, ebx
call fcn.00416430
push 0x553908
push 0x549858
mov edx, eax
call fcn.00417ed0
add esp, 8
mov ecx, esi
mov dword [esp + 0x298], 0xffffffff
call fcn.00425090
xor al, al
jmp 0x495ca0
push 0x5538e8
push ebx
call fcn.004164e0
add esp, 8
jmp 0x495ca0
cmp byte [esp + 0xf], 0
je 0x495802
mov ecx, esi
jmp 0x495c8e
xor eax, eax
mov byte [esp + 0xd], 0
mov dword [esp + 0x38], vtable.t_fileBufRead.0
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov byte [esp + 0xe], al
mov eax, dword [esp + 0x10]
push eax
push ebx
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a0], 1
call fcn.00480500
test al, al
jne 0x49586b
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.0041e4d0
test al, al
je 0x4958a4
mov ecx, edi
call fcn.00417d60
push eax
push 0x55391c
mov ecx, ebx
call fcn.004014b0
mov ecx, eax
call fcn.00417d40
jmp 0x495c66
push 0x2c
lea ecx, [esp + 0x4c]
push ecx
push ebx
lea ecx, [esp + 0x44]
mov byte [esp + 0x1a], 1
call fcn.00480690
test al, al
sete al
test al, al
je 0x4958af
mov ecx, dword [esp + 0x10]
call fcn.00417d60
push eax
push str.str:_n_s___n
push ebx
call fcn.004164e0
add esp, 0xc
jmp 0x495921
xor edi, edi
mov dword [esp + 0x5c], edi
jmp 0x49593f
mov edx, dword [edi + 0x24c]
mov eax, dword [esp + 0x4c]
cmp eax, dword [edx + 4]
je 0x4958d8
mov ecx, dword [esp + 0x10]
call fcn.00417d60
push eax
push str.str:__n_s___n
push ebx
call fcn.004164e0
add esp, 0xc
jmp 0x495921
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
imul ecx, edi
add ecx, dword [esp + 0x48]
lea eax, [ecx + edx]
cmp dword [esp + 0x60], eax
je 0x49590e
mov ecx, dword [esp + 0x10]
call fcn.00417d60
push eax
push 0x553998
push ebx
call fcn.004164e0
add esp, 0xc
jmp 0x495921
cmp eax, 0x200000
jbe 0x495953
push str.str
mov ecx, ebx
call fcn.004014b0
mov ecx, ebx
call fcn.00416870
mov ecx, ebx
call fcn.00416480
xor edi, edi
mov dword [esp + 0x5c], edi
mov byte [esp + 0xe], 0
mov byte [esp + 0xd], 0
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], 0x18
mov dword [esp + 0x50], 0x132420d
mov eax, dword [esp + 0x5c]
add eax, 0x3200
lea esi, [edi + 0x64]
lea ecx, [esi + esi*2]
mov dword [esp + 0x20], eax
lea eax, [eax + ecx*8 + 0x10]
push eax
mov dword [esp + 0x20], eax
call fcn.004ed893
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x495989
mov byte [esp + 0xd], 1
jmp 0x495c4a
mov dword [esp + 0x28], vtable.t_strMemData.0
mov dword [esp + 0x2c], eax
cmp byte [esp + 0xe], 0
mov byte [esp + 0x298], 2
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x20]
mov dword [eax], edi
mov dword [eax + 4], edx
mov dword [eax + 8], esi
mov dword [eax + 0xc], ecx
je 0x495b45
mov eax, dword [esp + 0x58]
mov byte [esp + 0xe], 1
cmp eax, 0x18
ja 0x495a3f
mov eax, dword [esp + 0x2c]
lea edx, [edi + edi*2]
add edx, edx
add edx, edx
add edx, edx
push edx
add eax, 0x10
push 0
push eax
call fcn.004f2770
xor esi, esi
add esp, 0xc
cmp edi, esi
mov dword [esp + 0x18], esi
jle 0x495ac9
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x58]
push ecx
lea edx, [esi + eax + 0x10]
push edx
push ebx
lea ecx, [esp + 0x44]
call fcn.00480690
test al, al
sete al
test al, al
jne 0x495ac9
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x5c]
cmp dword [esi + eax + 0x10], ecx
jae 0x495ac9
mov ecx, dword [esp + 0x18]
inc ecx
add esi, 0x18
cmp ecx, edi
mov dword [esp + 0x18], ecx
jl 0x4959f7
jmp 0x495add
push eax
call fcn.004ecd60
mov esi, eax
xor eax, eax
add esp, 4
cmp edi, eax
mov dword [esp + 0x18], eax
jle 0x495ab9
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x58]
push edx
push esi
push ebx
lea ecx, [esp + 0x44]
call fcn.00480690
test al, al
sete al
mov byte [esp + 0xe], al
test al, al
jne 0x495ab9
mov eax, dword [esp + 0x2c]
mov edx, dword [esi]
mov ecx, dword [esp + 0x20]
mov dword [ecx + eax + 0x10], edx
mov edx, dword [esi + 4]
lea eax, [ecx + eax + 0x10]
mov dword [eax + 4], edx
mov edx, dword [esi + 8]
mov dword [eax + 8], edx
mov edx, dword [esi + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [esi + 0x10]
mov dword [eax + 0x10], edx
mov edx, dword [esi + 0x14]
mov dword [eax + 0x14], edx
mov eax, dword [esp + 0x18]
inc eax
add ecx, 0x18
cmp eax, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ecx
jl 0x495a58
push esi
call fcn.004ef1ac
add esp, 4
cmp byte [esp + 0xe], 0
je 0x495ad9
push str.str_data_may_be_lost
push ebx
call fcn.004164e0
add esp, 8
jmp 0x495b3c
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x5c]
test edx, edx
jbe 0x495b41
mov ecx, dword [eax + 8]
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*8 + 0x10]
push edx
push eax
push ebx
lea ecx, [esp + 0x44]
call fcn.00480690
test al, al
jne 0x495b12
push str.str_string_data_may_be_lost
push ebx
call fcn.004164e0
add esp, 8
mov byte [esp + 0xd], 1
lea esi, [esp + 0x28]
call fcn.00496fb0
test al, al
jne 0x495b41
mov ecx, dword [esp + 0x10]
call fcn.00417d60
push eax
push str.str:
mov ecx, ebx
call fcn.004014b0
mov ecx, eax
call fcn.00417d40
mov byte [esp + 0xd], 1
mov eax, dword [esp + 0x14]
cmp byte [esp + 0xd], 0
mov byte [esp + 0x298], 1
mov dword [esp + 0x28], vtable.t_strDataBase.0
jne 0x495c4a
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], vtable.t_lockerMemSharable.0
push ebx
lea ecx, [esp + 0x24]
mov byte [esp + 0x29c], 3
call fcn.0042a5e0
test al, al
jne 0x495b9e
push 0x553a68
push ebx
call fcn.004164e0
add esp, 8
mov byte [esp + 0xd], 1
jmp 0x495c31
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x228], 0
je 0x495bba
lea esi, [eax + 0x224]
call fcn.004193d0
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
lea edx, [esp + 0x7c]
push edx
lea edi, [eax + 0x224]
add esi, 0x208
mov cl, 1
mov edx, ebx
call fcn.00480e90
test al, al
jne 0x495be3
mov byte [esp + 0xd], 1
jmp 0x495c31
mov eax, dword [esp + 0x30]
mov esi, dword [eax + 0x22c]
mov ecx, dword [esp + 0x10]
add esi, 8
call fcn.00417d60
push eax
push 0x104
push esi
call fcn.004ee6af
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
add esp, 0xc
push ecx
push edx
add esi, 0x208
push esi
call fcn.004f27f0
add esp, 0xc
cmp dword [edi + 4], 0
je 0x495c31
mov edi, dword [edi + 8]
mov dword [edi + 4], 1
mov byte [esp + 0x298], 1
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x495c46
call fcn.00425090
mov eax, dword [esp + 0x14]
test eax, eax
je 0x495c57
push eax
call fcn.004ed7b6
add esp, 4
cmp byte [esp + 0xd], 0
je 0x495c81
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x10]
push ebx
call fcn.004209d0
mov ecx, ebx
call fcn.00416870
lea ecx, [esp + 0x38]
call fcn.004804c0
jmp 0x4957c8
lea ecx, [esp + 0x38]
call fcn.004804c0
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x298], 0xffffffff
call fcn.00425090
mov al, 1
mov ecx, dword [esp + 0x290]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x27c]
xor ecx, esp
call fcn.004ecddb
mov esp, ebp
pop ebp
ret 8