Function at 0x100b3630
Capabilities:
Check http status code

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10131937
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x1148
call fcn.100e39d0
mov eax, dword [0x10188068]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10a4], ecx
mov edi, dword [ebx + 8]
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x1134], eax
mov dword [ebp - 0x1094], edi
mov al, byte [edi]
mov ecx, dword [edi + 0x28]
mov byte [ebp - 0x10a5], al
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x10f0], ecx
mov dword [ebp - 0x1148], ecx
mov esi, dword [eax + 4]
call sym.cloudinput.ime_protected:_void___thiscall_boost::serialization::singleton_class_boost::serialization::extended_type_info_typeid_struct_weasel::CandidateInfo__::constructor_void_
mov ecx, eax
mov dword [ebp - 0x10ac], ecx
test ecx, ecx
je 0x100b36c1
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov dword [ebp - method.CSmartPtr_class_CFreeTypeFontCache_.virtual_0], vtable.CSmartPtr_class_CFreeTypeFontCache_.0
mov edx, dword [ebx + 0xc]
mov dword [ebp - 4], 0
mov ecx, dword [edi + 0xb4]
mov eax, ecx
shr eax, 4
and eax, 0xffffff01
mov dword [ebp - 0x1110], 0
mov dword [ebp - 0x10cc], eax
mov eax, dword [edi + 0xb8]
shr eax, 1
and eax, 0xffffff01
mov dword [ebp - 0x10f4], eax
mov eax, dword [ebx + 0x10]
lea eax, [edx + eax*2]
mov dword [ebp - 0x10e4], eax
xor eax, eax
mov dword [ebp - 0x10e0], eax
movzx eax, word [edi + 0xe4]
mov edx, eax
mov dword [ebp - 0x10fc], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x1100], eax
and eax, 0xf0000
mov dword [ebp - 0x1130], edx
mov edx, dword [ebp - 0x10a4]
mov dword [ebp - 0x1104], eax
cmp esi, 4
je 0x100b375c
mov byte [ebp - 0x109d], 0
cmp esi, 5
jne 0x100b3763
mov byte [ebp - 0x109d], 1
mov eax, dword [edi + 0xac]
and ecx, 0x2000
cmp byte [edx + 0x1298], 0
mov dword [ebp - 0x10bc], eax
mov dword [ebp - 0x10d8], ecx
jne 0x100b3790
mov dword [ebp - 0x10f8], 0
jmp 0x100b379c
mov eax, dword [edx + 0x240]
mov dword [ebp - 0x10f8], eax
mov eax, dword [ebp - 0x1100]
and eax, 2
shl eax, 7
or eax, 2
cmp dword [0x10196e00], 0
mov dword [ebp - 0x1100], eax
jne 0x100b3839
cmp dword [0x10196d64], 0
je 0x100b3860
xor esi, esi
mov ecx, 0x10196e08
lea edi, [esi + 0x41]
mov eax, 0xfc0fc0fd
lea ecx, [ecx + 1]
mul esi
add esi, 0x100
shr edx, 6
mov al, dl
shr al, 6
add al, dl
mov byte [ecx - 1], al
sub edi, 1
jne 0x100b37d1
mov eax, dword [0x10196d64]
push edi
mov dword [0x10196e00], eax
mov dword [0x10196e04], edi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push 0x10196e00
push 0x100b2930
mov esi, eax
push edi
push esi
call dword [sym.imp.GDI32.dll_EnumFontFamiliesW]
push esi
cmp dword [0x10196e04], edi
je 0x100b3850
call dword [sym.imp.GDI32.dll_DeleteDC]
mov edi, dword [ebp - 0x1094]
mov edx, dword [ebp - 0x10a4]
mov eax, dword [edi + 0x2c]
cmp eax, dword [edi + 0x30]
jne 0x100b387e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 4], 2
jmp 0x100b3867
mov dword [0x10196e00], 0
call dword [sym.imp.GDI32.dll_DeleteDC]
mov dword [ebp - 4], 1
mov edx, dword [ebp - 0x10ac]
test edx, edx
je 0x100b3877
mov eax, dword [edx]
push edx
call dword [eax + 8]
xor eax, eax
jmp 0x100b4c2b
push dword [eax]
mov ecx, edx
push edi
call fcn.100b9cb0
mov dword [ebp - 0x10d4], eax
test eax, eax
jne 0x100b38a1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 4], 3
jmp 0x100b3867
mov eax, dword [ebx + 0xc]
mov esi, eax
mov dword [ebp - 0x10c0], esi
cmp eax, dword [ebp - 0x10e4]
jae 0x100b4c04
movzx eax, word [esi]
mov ecx, 0x3ff
test ax, ax
je 0x100b4c04
add eax, 0x2800
cmp ax, cx
ja 0x100b38e5
xor eax, eax
cmp word [esi + 2], ax
setne al
lea eax, [eax*2 + 2]
jmp 0x100b38ea
mov eax, 2
add eax, esi
mov dword [ebp - 0x10ec], eax
cmp eax, esi
jbe 0x100b4c04
sub eax, esi
xorps xmm0, xmm0
sar eax, 1
movups xmmword [ebp - 0x34], xmm0
movups xmmword [ebp - 0x24], xmm0
cmp eax, 0x7ffffffe
jbe 0x100b391d
xor edx, edx
mov dword [ebp - 0x1098], edx
jmp 0x100b3a17
lea ecx, [ebp - 0x34]
mov edx, 0x10
lea edi, [eax - 0x10]
mov eax, ecx
sub esi, eax
nop dword [eax]
lea eax, [edx + edi]
test eax, eax
je 0x100b394b
movzx eax, word [ecx + esi]
test ax, ax
je 0x100b394b
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x100b3930
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov dword [ebp - 0x1098], ecx
mov word [eax], cx
mov edx, dword [ebp - 0x34]
test dx, dx
je 0x100b3a0f
lea eax, [edx + 0x2800]
mov esi, 0x3ff
cmp ax, si
ja 0x100b3996
mov ecx, dword [ebp - 0x32]
lea eax, [ecx + 0x2400]
cmp ax, si
ja 0x100b3a07
and edx, esi
and ecx, esi
add edx, 0x40
shl edx, 0xa
add edx, ecx
jmp 0x100b3999
movzx edx, dx
mov dword [ebp - 0x1098], edx
cmp edx, 0xd
je 0x100b48ad
mov edi, dword [ebp - 0x1094]
cmp edx, 0xa
jne 0x100b39e9
mov eax, dword [edi + 0x70]
add eax, dword [edi + 0x5c]
add dword [edi + 0x54], eax
mov eax, dword [edi + 0x74]
add eax, dword [edi + 0x54]
mov dword [edi + 0x50], eax
mov eax, dword [edi + 0x4c]
cmp dword [edi + 0x6c], eax
jge 0x100b39d0
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x64]
mov dword [edi + 0x4c], eax
mov eax, dword [ebp - 0x10ec]
mov esi, eax
mov dword [ebp - 0x10c0], eax
jmp 0x100b38ac
cmp edx, 9
jne 0x100b3a17
mov eax, dword [edi + 0x60]
add dword [edi + 0x4c], eax
mov eax, dword [ebp - 0x10ec]
mov esi, eax
mov dword [ebp - 0x10c0], eax
jmp 0x100b38ac
mov edx, dword [ebp - 0x1098]
jmp 0x100b3a11
xor edx, edx
mov edi, dword [ebp - 0x1094]
mov eax, dword [edi + 0x2c]
xorps xmm0, xmm0
movq qword [ebp - 0x111c], xmm0
mov dword [ebp - 0x1114], 0
mov dword [ebp - 0x10c4], 0
mov eax, dword [eax]
mov dword [edi + 8], eax
mov dword [ebp - method.CSmartPtr_class_CFreeTypeCharData_.virtual_0], vtable.CSmartPtr_class_CFreeTypeCharData_.0
mov byte [ebp - 4], 4
xor edi, edi
mov ecx, dword [ebp - 0x10f0]
mov dword [ebp - 0x10b8], edi
mov dword [ebp - 0x109c], edi
mov dword [ebp - 0x10b0], edi
cmp byte [ecx + 0x1e], 0
mov dword [ebp - 0x10b4], edx
je 0x100b3bfb
lea edi, [ecx + 0x5c]
mov ecx, dword [edi]
mov esi, ecx
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x100b3aa3
cmp dword [eax + 0x10], edx
jae 0x100b3a90
mov eax, dword [eax + 8]
jmp 0x100b3a94
mov esi, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x100b3a86
cmp esi, ecx
je 0x100b3aa3
cmp edx, dword [esi + 0x10]
jae 0x100b3ad9
lea eax, [ebp - 0x10b4]
push ecx
mov dword [ebp - 0x10dc], eax
lea eax, [ebp - 0x10dc]
push eax
push ecx
mov ecx, edi
call fcn.100c0aa0
push eax
add eax, 0x10
mov ecx, edi
push eax
push esi
lea eax, [ebp - 0x1120]
push eax
call fcn.100c0ad0
mov esi, dword [ebp - 0x1120]
mov edi, dword [esi + 0x18]
mov ecx, edi
call sym.cloudinput.ime_protected:_void___thiscall_boost::serialization::singleton_class_boost::serialization::extended_type_info_typeid_struct_weasel::CandidateInfo__::constructor_void_
mov esi, eax
test esi, esi
je 0x100b3aef
mov ecx, dword [esi]
push esi
call dword [ecx + 4]
test edi, edi
je 0x100b3bdd
mov ecx, dword [ebp - 0x10f0]
inc dword [ecx + 0x10]
mov eax, dword [ecx + 0x10]
mov dword [edi + 8], eax
mov byte [ebp - 4], 5
test esi, esi
je 0x100b3b14
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 4
test edi, edi
je 0x100b3bef
mov ecx, edi
call sym.cloudinput.ime_protected:_void___thiscall_boost::serialization::singleton_class_boost::serialization::extended_type_info_typeid_struct_weasel::CandidateInfo__::constructor_void_
mov esi, eax
test esi, esi
je 0x100b3b33
mov ecx, dword [esi]
push esi
call dword [ecx + 4]
xor ecx, ecx
call sym.cloudinput.ime_protected:_void___thiscall_boost::serialization::singleton_class_boost::serialization::extended_type_info_typeid_struct_weasel::CandidateInfo__::constructor_void_
test eax, eax
je 0x100b3b44
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp byte [ebp - 0x10f4], 0
mov dword [ebp - 0x10c4], edi
je 0x100b3bd2
cmp dword [ebp - 0x10f8], 0
jne 0x100b3b8b
mov edi, dword [ebp - 0x1094]
lea eax, [ebp - 0x111c]
mov edx, dword [ebp - 0x1098]
push eax
lea eax, [ebp - 0x34]
mov ecx, dword [edi + 0x48]
push eax
call fcn.100b3540
mov ecx, dword [edi + 0xbc]
add esp, 8
add ecx, eax
add dword [edi + 0x4c], ecx
jmp 0x100b3ba3
mov eax, dword [ebp - 0x1094]
mov eax, dword [eax + 0xbc]
add eax, dword [edi + 0x10]
mov edi, dword [ebp - 0x1094]
add dword [edi + 0x4c], eax
mov byte [ebp - 4], 7
mov dword [ebp - method.CSmartPtr_class_CFreeTypeCharData_.virtual_0], vtable.CSmartPtrBase_class_CFreeTypeCharData_.0
test esi, esi
je 0x100b48b3
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x10ec]
mov esi, eax
mov dword [ebp - 0x10c0], eax
jmp 0x100b38ac
mov edi, dword [edi + 0x18]
mov dword [ebp - 0x109c], edi
jmp 0x100b3bf5
mov byte [ebp - 4], 6
test esi, esi
je 0x100b3beb
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 4
mov edi, dword [ebp - 0x109c]
mov edx, dword [ebp - 0x1098]
test edi, edi
jne 0x100b452c
mov ecx, dword [ebp - 0x1100]
xor eax, eax
mov dword [ebp - 0xc4], eax
mov esi, ecx
mov dword [ebp - 0xc0], eax
lea eax, [ebp - 0x1090]
mov dword [ebp - 0x10d0], edi
mov dword [ebp - 0xc8], 0x10000
mov dword [ebp - 0xbc], 0x10000
mov dword [ebp - 0x10b4], esi
mov dword [ebp - 0x110], 0xf80
mov dword [ebp - 0x10c], eax
xor eax, eax
mov byte [ebp - 4], 8
mov dword [ebp - 0x10dc], eax
mov eax, dword [ebp - 0x10a4]
mov eax, dword [eax + 0x210]
sub eax, edi
je 0x100b3d80
sub eax, 1
jne 0x100b4570
cmp byte [ebp - 0x10cc], al
je 0x100b3c9a
mov edi, dword [ebp - 0x1094]
or esi, 0x80
mov dword [ebp - 0x10b0], edx
mov dword [ebp - 0x10b4], esi
jmp 0x100b3d01
push 0x80
lea eax, [ebp - 0xb8]
push 0
push eax
call fcn.100fc650
lea ecx, [ebp - 0x34]
add esp, 0xc
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100b3cb6
mov edi, dword [ebp - 0x1094]
lea eax, [ebp - 0xb8]
push 1
push eax
sub ecx, edx
lea eax, [ebp - 0x34]
sar ecx, 1
push ecx
push eax
push dword [edi + 0x48]
call dword [sym.imp.GDI32.dll_GetGlyphIndicesW]
cmp eax, 1
jne 0x100b3d01
mov ax, word [ebp - 0xb8]
mov ecx, 0xffff
cmp ax, cx
je 0x100b3d01
movzx eax, ax
mov dword [ebp - 0x10b0], eax
mov eax, dword [ebx + 0xc]
cmp dword [ebp - 0x10c0], eax
jne 0x100b3d34
test byte [edi + 0x14], 0x20
je 0x100b3d34
lea eax, [ebp - 0xc8]
push eax
push 0
push 0
lea eax, [ebp - 0x104]
push eax
push 0x182
push 0
push dword [edi + 0x48]
call dword [sym.imp.GDI32.dll_GetGlyphOutlineW]
lea eax, [ebp - 0xc8]
push eax
push dword [ebp - 0x10c]
lea eax, [ebp - 0x104]
push dword [ebp - 0x110]
push eax
push esi
push dword [ebp - 0x1098]
push dword [edi + 0x48]
call dword [sym.imp.GDI32.dll_GetGlyphOutlineW]
mov dword [ebp - 0x10dc], eax
cmp eax, 0xffffffff
je 0x100b457a
test eax, eax
je 0x100b457a
mov esi, dword [ebp - 0x10b0]
jmp 0x100b400a
mov ecx, dword [ebp - 0x10cc]
test cl, cl
je 0x100b3d9d
mov edi, dword [ebp - 0x1094]
mov esi, edx
mov dword [ebp - 0x10b0], esi
jmp 0x100b4016
test edx, edx
je 0x100b4570
mov eax, dword [ebp - 0x1094]
mov edi, dword [eax + 0x2c]
cmp edi, dword [eax + 0x30]
je 0x100b4578
lea edx, [eax + 0x40]
mov dword [ebp - 0x109c], edx
mov eax, dword [edx]
mov esi, eax
mov ecx, dword [esi + 4]
cmp byte [ecx + 0xd], 0
jne 0x100b3dea
mov edx, dword [edi]
nop
cmp dword [ecx + 0x10], edx
jae 0x100b3dda
mov ecx, dword [ecx + 8]
jmp 0x100b3dde
mov esi, ecx
mov ecx, dword [ecx]
cmp byte [ecx + 0xd], 0
je 0x100b3dd0
mov edx, dword [ebp - 0x109c]
cmp esi, eax
je 0x100b3df5
mov eax, dword [edi]
cmp eax, dword [esi + 0x10]
jae 0x100b3e29
push ecx
lea eax, [ebp - 0x10c0]
mov dword [ebp - 0x10c0], edi
push eax
push ecx
mov ecx, edx
call fcn.100c07f0
mov ecx, dword [ebp - 0x109c]
push eax
add eax, 0x10
push eax
push esi
lea eax, [ebp - 0x1124]
push eax
call fcn.100c0820
mov esi, dword [ebp - 0x1124]
add esi, 0x14
lea ecx, [ebp - 0xf0]
push esi
call fcn.10045090
mov ecx, dword [ebp - 0x10a4]
lea eax, [ebp - 0xf0]
mov byte [ebp - 4], 9
cmp dword [ebp - 0xdc], 8
cmovae eax, dword [ebp - 0xf0]
push eax
call fcn.100b9d60
mov ecx, eax
mov dword [ebp - 0x1108], ecx
call sym.cloudinput.ime_protected:_void___thiscall_boost::serialization::singleton_class_boost::serialization::extended_type_info_typeid_struct_weasel::CandidateInfo__::constructor_void_
mov esi, eax
mov dword [ebp - 0x10c0], esi
test esi, esi
je 0x100b3e81
mov ecx, dword [esi]
push esi
call dword [ecx + 4]
mov ecx, dword [ebp - 0x1108]
mov dword [ebp - method.CSmartPtr_class_CFontUnicodeRanges_.virtual_0], vtable.CSmartPtr_class_CFontUnicodeRanges_.0
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0xe0], 0
je 0x100b3f7c
test ecx, ecx
je 0x100b3f7c
mov ecx, dword [ecx + 8]
mov eax, dword [ecx]
cmp eax, ecx
je 0x100b3f7c
mov edx, dword [ebp - 0x1098]
cmp dword [eax + 8], edx
ja 0x100b3ec1
cmp edx, dword [eax + 0xc]
jbe 0x100b3ecc
mov eax, dword [eax]
cmp eax, ecx
jne 0x100b3eb7
jmp 0x100b3f7c
mov esi, dword [ebp - 0x1094]
add esi, 0x38
push edi
mov ecx, esi
mov dword [ebp - 0x10b0], esi
call fcn.10093180
cmp dword [eax], 0xffffffff
jne 0x100b3f35
lea eax, [ebp - 0x1128]
push eax
mov eax, dword [ebp - 0x10a4]
push dword [edi]
push dword [eax + 0x2c]
call fcn.10008300
add esp, 0xc
test eax, eax
jne 0x100b3f35
mov eax, dword [ebp - 0x1128]
mov ecx, esi
push edi
mov eax, dword [eax + 0x5c]
mov dword [ebp - 0x10e8], eax
call fcn.10093180
push dword [ebp - 0x10e8]
mov esi, eax
call fcn.10002140
mov dword [esi], eax
add esp, 4
mov esi, dword [ebp - 0x10b0]
push edi
mov ecx, esi
call fcn.10093180
cmp dword [eax], 0xffffffff
je 0x100b3f76
mov ecx, dword [ebp - 0x10b0]
mov esi, dword [edi]
push edi
call fcn.10093180
push dword [ebp - 0x1098]
push dword [eax]
mov eax, dword [ebp - 0x10a4]
push esi
push dword [eax + 0x30]
call fcn.10009430
mov esi, eax
add esp, 0x10
mov dword [ebp - 0x10b0], esi
test esi, esi
jne 0x100b3fc0
mov esi, dword [ebp - 0x10c0]
add edi, 4
mov byte [ebp - 4], 0xc
mov dword [ebp - method.CSmartPtr_class_CFontUnicodeRanges_.virtual_0], vtable.CSmartPtrBase_class_CFontUnicodeRanges_.0
test esi, esi
je 0x100b3f97
mov eax, dword [esi]
push esi
call dword [eax + 8]
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], 8
call fcn.10043ac0
mov eax, dword [ebp - 0x1094]
cmp edi, dword [eax + 0x30]
je 0x100b4578
mov edx, dword [ebp - 0x109c]
jmp 0x100b3dc0
mov eax, dword [edi]
mov edi, dword [ebp - 0x1094]
mov ecx, dword [ebp - 0x10a4]
push eax
push edi
mov dword [edi + 8], eax
call fcn.100b31f0
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x1108]
mov dword [ebp - method.CSmartPtr_class_CFontUnicodeRanges_.virtual_0], vtable.CSmartPtrBase_class_CFontUnicodeRanges_.0
call sym.cloudinput.ime_protected:_void___thiscall_boost::serialization::singleton_class_boost::serialization::extended_type_info_typeid_struct_weasel::CandidateInfo__::constructor_void_
test eax, eax
je 0x100b3ffb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], 8
call fcn.10043ac0
mov ecx, dword [ebp - 0x10cc]
mov edx, dword [ebp - 0x1098]
mov eax, dword [ebp - 0x10a4]
mov eax, dword [eax + 0x210]
sub eax, 0
je 0x100b4129
sub eax, 1
jne 0x100b4197
cmp byte [ebp - 0x10a5], al
je 0x100b4197
test cl, cl
jne 0x100b4197
mov ecx, dword [ebp - 0x10e0]
test ecx, ecx
je 0x100b411f
test edx, edx
je 0x100b411f
mov eax, ecx
shr eax, 0x10
test eax, eax
jne 0x100b411a
mov eax, edx
shr eax, 0x10
test eax, eax
jne 0x100b411a
movzx eax, dx
mov edx, dword [edi + 0x128]
mov esi, edx
movzx ecx, cx
shl ecx, 0x10
or ecx, eax
mov dword [ebp - 0x10e8], ecx
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x100b40bd
nop word [eax + eax]
cmp dword [eax + 0x10], ecx
jae 0x100b40aa
mov eax, dword [eax + 8]
jmp 0x100b40ae
mov esi, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x100b40a0
cmp esi, edx
je 0x100b40bd
cmp ecx, dword [esi + 0x10]
jae 0x100b40fb
lea eax, [ebp - 0x10e8]
push ecx
mov dword [ebp - 0x10e0], eax
lea eax, [ebp - 0x10e0]
push eax
push ecx
lea ecx, [edi + 0x128]
call fcn.100932b0
push eax
add eax, 0x10
lea ecx, [edi + 0x128]
push eax
push esi
lea eax, [ebp - 0x112c]
push eax
call fcn.100932e0
mov esi, dword [ebp - 0x112c]
mov edi, dword [ebp - 0x1094]
mov eax, dword [esi + 0x14]
mov edx, dword [ebp - 0x1098]
add dword [edi + 0x4c], eax
mov eax, edx
mov dword [ebp - 0x10e0], eax
jmp 0x100b4197
xor eax, eax
add dword [edi + 0x4c], eax
mov eax, edx
mov dword [ebp - 0x10e0], eax
jmp 0x100b4197
cmp word [ebp - 0x10fc], 0x40
jne 0x100b4152
mov eax, dword [ebp - 0x10d4]
mov edx, esi
push ecx
mov ecx, dword [eax + 0x2c]
call fcn.100c3210
add esp, 4
test eax, eax
cmovne esi, eax
mov dword [ebp - 0x10b0], esi
cmp byte [ebp - 0x10a5], 0
je 0x100b4197
mov eax, dword [ebp - 0x1110]
test eax, eax
je 0x100b4191
test esi, esi
je 0x100b4191
lea ecx, [ebp - 0x1154]
push ecx
push 0
push esi
push eax
push dword [ebp - 0x10d4]
call fcn.10001fd0
mov eax, dword [ebp - 0x1154]
add esp, 0x14
add eax, 0x20
sar eax, 6
add dword [edi + 0x4c], eax
mov dword [ebp - 0x1110], esi
movups xmm0, xmmword [edi + 8]
movups xmmword [ebp - 0x1144], xmm0
psrldq xmm0, 0xc
movd ecx, xmm0
test cl, 8
jne 0x100b41ca
cmp byte [edi + 0x124], 0
je 0x100b41ca
and ecx, 0xfffaffff
or ecx, 0x20000
jmp 0x100b424c
cmp word [ebp - 0x10fc], 0x40
jne 0x100b4222
mov edx, dword [ebp - 0x1098]
mov eax, edx
shr eax, 0x10
test eax, eax
jne 0x100b4222
cmp edx, 0x80
jb 0x100b4222
lea eax, [edx - 0xff61]
cmp eax, 0x3e
jbe 0x100b4222
or ecx, 0x10
cmp dword [ebp - 0x1104], 0x30000
mov dword [ebp - 0x1138], ecx
jne 0x100b4252
cmp byte [ebp - 0x109d], 0
jne 0x100b4252
and ecx, 0xfffcffff
or ecx, 0x40000
jmp 0x100b424c
and ecx, 0xffffffef
cmp dword [ebp - 0x1104], 0x30000
mov dword [ebp - 0x1138], ecx
jne 0x100b4252
cmp byte [ebp - 0x109d], 0
jne 0x100b4252
and ecx, 0xfffbffff
or ecx, 0x30000
mov dword [ebp - 0x1138], ecx
mov ecx, dword [ebp - 0x10a4]
xor esi, esi
mov dword [ebp - 0x109c], esi
mov eax, dword [ecx + 0x210]
sub eax, esi
je 0x100b4342
sub eax, 1
jne 0x100b436b
mov esi, dword [ebp - 0x10dc]
cmp esi, dword [ebp - 0x110]
jbe 0x100b4313
mov eax, dword [ebp - 0x10c]
lea ecx, [ebp - 0x1090]
cmp eax, ecx
je 0x100b42a2
push eax
call fcn.101080bf
add esp, 4
mov ecx, 0xf80
lea eax, [ebp - 0x1090]
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x10c], eax
cmp esi, ecx
jae 0x100b42e0
push esi
mov dword [ebp - 0x110], esi
call fcn.101085fd
add esp, 4
mov dword [ebp - 0x10c], eax
test eax, eax
je 0x100b48c6
mov ecx, dword [ebp - 0x110]
lea edx, [ebp - 0xc8]
push edx
push eax
push ecx
lea eax, [ebp - 0x104]
push eax
push dword [ebp - 0x10b4]
push dword [ebp - 0x1098]
push dword [edi + 0x48]
call dword [sym.imp.GDI32.dll_GetGlyphOutlineW]
mov esi, eax
cmp esi, dword [ebp - 0x110]
ja 0x100b4924
lea eax, [ebp - 0x104]
push eax
push dword [ebp - 0x10c]
lea ecx, [ebp - 0x109c]
push esi
call fcn.100b2a20
mov esi, dword [ebp - 0x109c]
test al, al
je 0x100b4982
mov dword [ebp - 0x10d0], esi
jmp 0x100b436b
push 0
lea eax, [ebp - 0x10d0]
push eax
push dword [ebp - 0x10b0]
lea eax, [ebp - 0x1144]
push eax
push dword [ecx + 0x28]
call fcn.100097b0
add esp, 0x14
test eax, eax
jne 0x100b4ba6
mov edi, dword [ebp - 0x10d0]
mov dword [ebp - 0x109c], edi
cmp dword [edi + 8], 0x62697473
je 0x100b44cb
lea eax, [ebp - 0x10b8]
push eax
push edi
call fcn.10007ba0
add esp, 8
test eax, eax
jne 0x100b4b24
mov edi, dword [ebp - 0x1094]
mov byte [ebp - 0x10a6], al
cmp dword [edi + 0xd8], 0x190
mov edx, dword [edi + 0x1c]
mov ecx, dword [edx + 0x30]
mov eax, ecx
jle 0x100b43ed
mov edi, dword [ebp - 0x10a4]
cmp dword [edi + 0x210], 0
mov edi, dword [ebp - 0x1094]
jne 0x100b43ed
mov edi, dword [ebp - 0x10d4]
test byte [edi + 0xc], 2
mov edi, dword [ebp - 0x1094]
jne 0x100b43ed
mov eax, dword [edx + 0x20]
mov byte [ebp - 0x10a6], 1
test eax, eax
jne 0x100b43f5
test ecx, ecx
je 0x100b4414
push ecx
mov ecx, dword [ebp - 0x10a4]
push eax
mov eax, dword [ebp - 0x10b8]
add eax, 0x14
push eax
call fcn.100b59b0
test eax, eax
jne 0x100b4a94
cmp byte [ebp - 0x10a6], 0
je 0x100b442a
mov eax, dword [ebp - 0x10b8]
add dword [eax + 0xc], 0x10000
cmp byte [edi + 0xdc], 0
je 0x100b4497
mov eax, dword [ebp - 0x10a4]
cmp dword [eax + 0x210], 0
jne 0x100b4497
mov eax, dword [ebp - 0x10d4]
test byte [eax + 0xc], 1
jne 0x100b4497
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0xd8], 0x10000
mov eax, dword [eax + 0x38]
add eax, 5
mov dword [ebp - 0xd0], 0
shl eax, 0xc
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0xd8]
push eax
mov eax, dword [ebp - 0x10b8]
add eax, 0x14
mov dword [ebp - 0xcc], 0x10000
push eax
call fcn.10002b60
add esp, 8
mov eax, dword [ebp - 0x1138]
push 1
sar eax, 0x10
and eax, 0xf
push 0
push eax
lea eax, [ebp - 0x10b8]
push eax
call fcn.10007cf0
add esp, 0x10
test eax, eax
jne 0x100b4a04
mov edi, dword [ebp - 0x10b8]
mov dword [ebp - 0x109c], edi
test esi, esi
je 0x100b44f0
push dword [esi + 0x18]
call fcn.101080bf
add esp, 4
push dword [esi + 0x1c]
call fcn.101080bf
add esp, 4
push dword [esi + 0x20]
call fcn.101080bf
add esp, 4
push esi
call fcn.101080bf
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1090]
mov eax, dword [ebp - 0x10c]
add esp, 4
cmp eax, ecx
je 0x100b4516
push eax
call fcn.101080bf
add esp, 4
lea eax, [ebp - 0x1090]
mov dword [ebp - 0x110], 0xf80
mov dword [ebp - 0x10c], eax
cmp word [ebp - 0x10fc], 0x40
jne 0x100b46da
mov ecx, dword [ebp - 0x1098]
mov eax, ecx
shr eax, 0x10
test eax, eax
jne 0x100b46da
cmp ecx, 0x80
jb 0x100b46da
lea eax, [ecx - 0xff61]
cmp eax, 0x3e
jbe 0x100b46da
push dword [edi + 0x10]
jmp 0x100b46dd
mov edi, dword [ebp - 0x1094]
jmp 0x100b457a
mov edi, eax
mov edx, dword [ebp - 0x1098]
lea eax, [ebp - 0x111c]
mov ecx, dword [edi + 0x48]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.100b3540
add esp, 8
mov esi, eax
cmp byte [ebp - 0x10f4], 0
jne 0x100b4660
mov eax, dword [ebp - 0x10e4]
cmp eax, dword [ebp - 0x10ec]
jbe 0x100b45e2
mov edx, dword [ebp - 0x10bc]
test edx, edx
je 0x100b4660
mov esi, dword [edx]
xor eax, eax
cmp dword [ebp - 0x10d8], eax
setne al
lea eax, [eax*4 + 4]
add edx, eax
mov dword [ebp - 0x10bc], edx
jmp 0x100b4660
mov ecx, dword [ebp - 0x10bc]
xor edx, edx
test ecx, ecx
je 0x100b4610
cmp dword [ebp - 0x10d8], edx
mov eax, dword [ecx]
setne dl
mov dword [ebp - 0x10b4], eax
lea edx, [edx*4 + 4]
add ecx, edx
mov dword [ebp - 0x10bc], ecx
jmp 0x100b4626
cmp dword [ebp - 0x10d8], edx
mov dword [ebp - 0x10b4], esi
setne dl
lea edx, [edx*4 + 4]
mov eax, dword [ebp - 0x1118]
mov edi, ecx
add eax, dword [ebp - 0x111c]
cmp dword [ebp - 0x10b4], eax
jle 0x100b4658
mov eax, dword [ebp - 0x10bc]
test eax, eax
je 0x100b4648
mov esi, dword [eax]
test edi, edi
lea eax, [edi + edx]
cmove eax, edi
mov dword [ebp - 0x10bc], eax
jmp 0x100b465a
mov esi, eax
mov edi, dword [ebp - 0x1094]
add dword [edi + 0x4c], esi
mov ecx, dword [edi + 0x4c]
mov eax, dword [edi + 0xbc]
add eax, ecx
lea ecx, [ebp - 0x1090]
mov dword [edi + 0x4c], eax
mov eax, dword [ebp - 0x10c]
cmp eax, ecx
je 0x100b468a
push eax
call fcn.101080bf
add esp, 4
lea eax, [ebp - 0x1090]
mov dword [ebp - 0x110], 0xf80
mov dword [ebp - 0x10c], eax
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x10c4]
mov dword [ebp - method.CSmartPtr_class_CFreeTypeCharData_.virtual_0], vtable.CSmartPtrBase_class_CFreeTypeCharData_.0
call sym.cloudinput.ime_protected:_void___thiscall_boost::serialization::singleton_class_boost::serialization::extended_type_info_typeid_struct_weasel::CandidateInfo__::constructor_void_
test eax, eax
je 0x100b48b3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x10ec]
mov esi, eax
mov dword [ebp - 0x10c0], eax
jmp 0x100b38ac
push dword [edi + 0xc]
call fcn.10001000
mov esi, eax
add esp, 4
sar esi, 0x10
cmp word [ebp - 0x1130], 0x40
jne 0x100b471b
mov ecx, dword [ebp - 0x1098]
mov eax, ecx
shr eax, 0x10
test eax, eax
jne 0x100b471b
cmp ecx, 0x80
jb 0x100b471b
lea eax, [ecx - 0xff61]
cmp eax, 0x3e
jbe 0x100b471b
push dword [edi + 0xc]
jmp 0x100b471e
push dword [edi + 0x10]
call fcn.10001000
mov edi, eax
add esp, 4
sar edi, 0x10
cmp dword [ebp - 0x10f8], 0
je 0x100b474e
mov ecx, dword [ebp - 0x109c]
mov eax, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x20]
cdq
add ecx, 5
xor eax, edx
sub eax, edx
add eax, ecx
cmp esi, eax
jle 0x100b4772
mov edx, dword [ebp - 0x1098]
lea eax, [ebp - 0x111c]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x1094]
mov ecx, dword [eax + 0x48]
call fcn.100b3540
mov esi, eax
add esp, 8
push dword [ebp - 0x109c]
push dword [ebp - 0x1098]
push dword [ebp - 0x1094]
call dword [ebp - 0x1134]
cmp byte [ebp - 0x10f4], 0
je 0x100b47a1
mov edx, dword [ebp - 0x1094]
add dword [edx + 0x4c], esi
jmp 0x100b483c
mov edx, dword [ebp - 0x10bc]
test edx, edx
je 0x100b47cf
mov ecx, dword [edx]
xor eax, eax
cmp dword [ebp - 0x10d8], eax
mov dword [ebp - 0x10b4], ecx
setne al
lea eax, [eax*4 + 4]
add edx, eax
mov dword [ebp - 0x10bc], edx
jmp 0x100b47d7
mov ecx, esi
mov dword [ebp - 0x10b4], esi
mov eax, dword [ebp - 0x10e4]
mov edx, dword [ebp - 0x1094]
cmp eax, dword [ebp - 0x10ec]
jbe 0x100b47f0
add dword [edx + 0x4c], ecx
jmp 0x100b483c
mov eax, dword [ebp - 0x109c]
mov ecx, dword [eax + 0x20]
mov eax, dword [edx + 0x14]
and eax, 0xf0000
cmp eax, 0x30000
jne 0x100b481c
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp - 0x1094]
mov eax, dword [ebp - 0x109c]
add ecx, dword [eax + 0x14]
mov eax, esi
cmp dword [ebp - 0x10b4], ecx
cmovg ecx, dword [ebp - 0x10b4]
cmp ecx, esi
cmovg eax, ecx
add dword [edx + 0x4c], eax
mov ecx, dword [edx + 0x4c]
mov eax, dword [edx + 0xbc]
add eax, ecx
mov ecx, dword [ebp - 0x109c]
mov dword [edx + 0x4c], eax
mov edx, dword [ebp - 0x10b0]
mov eax, dword [ecx + 0x1c]
cmp edi, eax
cmovg eax, edi
test edx, edx
je 0x100b4877
push ecx
mov ecx, dword [ebp - 0x10f0]
push eax
push esi
push edx
push dword [ebp - 0x1098]
call fcn.100b6190
mov eax, dword [ebp - 0x10b8]
test eax, eax
je 0x100b488a
push eax
call fcn.10007b70
add esp, 4
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x10c4]
mov dword [ebp - method.CSmartPtr_class_CFreeTypeCharData_.virtual_0], vtable.CSmartPtrBase_class_CFreeTypeCharData_.0
call sym.cloudinput.ime_protected:_void___thiscall_boost::serialization::singleton_class_boost::serialization::extended_type_info_typeid_struct_weasel::CandidateInfo__::constructor_void_
test eax, eax
je 0x100b48ad
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [ebp - 0x1094]
mov eax, dword [ebp - 0x10ec]
mov esi, eax
mov dword [ebp - 0x10c0], eax
jmp 0x100b38ac
push 0
call fcn.101080bf
mov eax, dword [ebp - 0x10c]
lea ecx, [ebp - 0x1090]
add esp, 4
cmp eax, ecx
je 0x100b48e9
push eax
call fcn.101080bf
add esp, 4
lea eax, [ebp - 0x1090]
mov dword [ebp - 0x110], 0xf80
mov dword [ebp - 0x10c], eax
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x10c4]
call sym.cloudinput.ime_protected:_void___thiscall_boost::serialization::singleton_class_boost::serialization::extended_type_info_typeid_struct_weasel::CandidateInfo__::constructor_void_
test eax, eax
je 0x100b4918
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0x11
jmp 0x100b3867
push 0
call fcn.101080bf
mov eax, dword [ebp - 0x10c]
lea ecx, [ebp - 0x1090]
add esp, 4
cmp eax, ecx
je 0x100b4947
push eax
call fcn.101080bf
add esp, 4
lea eax, [ebp - 0x1090]
mov dword [ebp - 0x110], 0xf80
mov dword [ebp - 0x10c], eax
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x10c4]
call sym.cloudinput.ime_protected:_void___thiscall_boost::serialization::singleton_class_boost::serialization::extended_type_info_typeid_struct_weasel::CandidateInfo__::constructor_void_
test eax, eax
je 0x100b4976
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0x13
jmp 0x100b3867
test esi, esi
je 0x100b49a7
push dword [esi + 0x18]
call fcn.101080bf
add esp, 4
push dword [esi + 0x1c]
call fcn.101080bf
add esp, 4
push dword [esi + 0x20]
call fcn.101080bf
add esp, 4
push esi
call fcn.101080bf
mov eax, dword [ebp - 0x10c]
lea ecx, [ebp - 0x1090]
add esp, 4
cmp eax, ecx
je 0x100b49c9
push eax
call fcn.101080bf
add esp, 4
lea eax, [ebp - 0x1090]
mov dword [ebp - 0x110], 0xf80
mov dword [ebp - 0x10c], eax
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x10c4]
call sym.cloudinput.ime_protected:_void___thiscall_boost::serialization::singleton_class_boost::serialization::extended_type_info_typeid_struct_weasel::CandidateInfo__::constructor_void_
test eax, eax
je 0x100b49f8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0x15
jmp 0x100b3867
push dword [ebp - 0x10b8]
call fcn.10007b70
add esp, 4
test esi, esi
je 0x100b4a37
push dword [esi + 0x18]
call fcn.101080bf
add esp, 4
push dword [esi + 0x1c]
call fcn.101080bf
add esp, 4
push dword [esi + 0x20]
call fcn.101080bf
add esp, 4
push esi
call fcn.101080bf
mov eax, dword [ebp - 0x10c]
lea ecx, [ebp - 0x1090]
add esp, 4
cmp eax, ecx
je 0x100b4a59
push eax
call fcn.101080bf
add esp, 4
lea eax, [ebp - 0x1090]
mov dword [ebp - 0x110], 0xf80
mov dword [ebp - 0x10c], eax
mov byte [ebp - 4], 0x1a
mov ecx, dword [ebp - 0x10c4]
call sym.cloudinput.ime_protected:_void___thiscall_boost::serialization::singleton_class_boost::serialization::extended_type_info_typeid_struct_weasel::CandidateInfo__::constructor_void_
test eax, eax
je 0x100b4a88
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0x1b
jmp 0x100b3867
push dword [ebp - 0x10b8]
call fcn.10007b70
add esp, 4
test esi, esi
je 0x100b4ac7
push dword [esi + 0x18]
call fcn.101080bf
add esp, 4
push dword [esi + 0x1c]
call fcn.101080bf
add esp, 4
push dword [esi + 0x20]
call fcn.101080bf
add esp, 4
push esi
call fcn.101080bf
mov eax, dword [ebp - 0x10c]
lea ecx, [ebp - 0x1090]
add esp, 4
cmp eax, ecx
je 0x100b4ae9
push eax
call fcn.101080bf
add esp, 4
lea eax, [ebp - 0x1090]
mov dword [ebp - 0x110], 0xf80
mov dword [ebp - 0x10c], eax
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x10c4]
call sym.cloudinput.ime_protected:_void___thiscall_boost::serialization::singleton_class_boost::serialization::extended_type_info_typeid_struct_weasel::CandidateInfo__::constructor_void_
test eax, eax
je 0x100b4b18
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0x19
jmp 0x100b3867
test esi, esi
je 0x100b4b49
push dword [esi + 0x18]
call fcn.101080bf
add esp, 4
push dword [esi + 0x1c]
call fcn.101080bf
add esp, 4
push dword [esi + 0x20]
call fcn.101080bf
add esp, 4
push esi
call fcn.101080bf
mov eax, dword [ebp - 0x10c]
lea ecx, [ebp - 0x1090]
add esp, 4
cmp eax, ecx
je 0x100b4b6b
push eax
call fcn.101080bf
add esp, 4
lea eax, [ebp - 0x1090]
mov dword [ebp - 0x110], 0xf80
mov dword [ebp - 0x10c], eax
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x10c4]
call sym.cloudinput.ime_protected:_void___thiscall_boost::serialization::singleton_class_boost::serialization::extended_type_info_typeid_struct_weasel::CandidateInfo__::constructor_void_
test eax, eax
je 0x100b4b9a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0x17
jmp 0x100b3867
push 0
call fcn.101080bf
mov eax, dword [ebp - 0x10c]
lea ecx, [ebp - 0x1090]
add esp, 4
cmp eax, ecx
je 0x100b4bc9
push eax
call fcn.101080bf
add esp, 4
lea eax, [ebp - 0x1090]
mov dword [ebp - 0x110], 0xf80
mov dword [ebp - 0x10c], eax
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x10c4]
call sym.cloudinput.ime_protected:_void___thiscall_boost::serialization::singleton_class_boost::serialization::extended_type_info_typeid_struct_weasel::CandidateInfo__::constructor_void_
test eax, eax
je 0x100b4bf8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0xf
jmp 0x100b3867
mov eax, dword [edi + 0x4c]
cmp dword [edi + 0x6c], eax
jge 0x100b4c0f
mov dword [edi + 0x6c], eax
mov edx, dword [ebp - 0x10ac]
mov dword [ebp - 4], 0x1d
test edx, edx
je 0x100b4c26
mov ecx, dword [edx]
push edx
call dword [ecx + 8]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100e278d
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10