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

Disassembly:
sub esp, 0x5c
push ebx
mov ebx, dword [0x10123834]
push ebp
push esi
push edi
mov edi, dword [esp + 0x70]
mov esi, ecx
test edi, edi
jne 0x100bf22c
push edi
push str.void___thiscall_i3UIUniscribe::CreateUIText_class_i3UIText__unsigned_short__int_class_i3::vector_struct_SCRIPT_RUN__class_i3::pool_allocator_struct_SCRIPT_RUN______class_i3::vector_class_i3UIGlyph__class_i3::pool_allocator_class_i3UIGlyph______
push 0x41a
push edi
call ebx
mov ebp, dword [0x10123838]
push str.pUIText___NULL
push str.Asserted_:__s
call ebp
add esp, 0x18
jmp 0x100bf232
mov ebp, dword [0x10123838]
mov eax, dword [esp + 0x7c]
push eax
mov ecx, esi
call sym.i3FrameworkDx.dll_public:_void___thiscall_i3UIUniscribe::ReleaseRuns_class_i3::vector_struct_SCRIPT_RUN___class_i3::pool_allocator_struct_SCRIPT_RUN_____
mov ecx, esi
call sym.i3FrameworkDx.dll_protected:_void___thiscall_i3UIUniscribe::_FreeBackingStorages_void_
mov eax, dword [edi + 0x20]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x100bf319
push eax
push str.void___thiscall_i3UIUniscribe::CreateUIText_class_i3UIText__unsigned_short__int_class_i3::vector_struct_SCRIPT_RUN__class_i3::pool_allocator_struct_SCRIPT_RUN______class_i3::vector_class_i3UIGlyph__class_i3::pool_allocator_class_i3UIGlyph______
push 0x438
push eax
call ebx
push str.pFont___NULL
push str.Asserted_:__s
call ebp
mov edx, dword [esi + 0x3c]
add esp, 0x18
mov dword [esi + 0x44], edx
cmp dword [esi + 0x40], 0
je 0x100bf29c
push 0
push str.void___thiscall_i3UIUniscribe::CreateUIText_class_i3UIText__unsigned_short__int_class_i3::vector_struct_SCRIPT_RUN__class_i3::pool_allocator_struct_SCRIPT_RUN______class_i3::vector_class_i3UIGlyph__class_i3::pool_allocator_class_i3UIGlyph______
push 0x455
push 0
call ebx
push str.m_hDC__NULL
push str.Asserted_:__s
call ebp
add esp, 0x18
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov ecx, dword [esi + 0x44]
push ecx
push eax
mov dword [esi + 0x40], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, esi
mov dword [esp + 0x18], eax
call sym.i3FrameworkDx.dll_protected:_int___thiscall_i3UIUniscribe::_ScriptCacheGetHeight_void_
mov edi, eax
cmp edi, 1
mov dword [esp + 0x10], edi
jge 0x100bf2d4
mov dword [esp + 0x10], 1
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x70]
mov dword [edx + 0x84], edi
test eax, eax
jne 0x100bf327
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x40]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [esi + 0x40]
push edx
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x1c]
push edi
push eax
push ecx
push edx
jmp 0x100bf607
mov ecx, dword [eax + 0x80]
mov dword [esi + 0x44], ecx
jmp 0x100bf277
push eax
mov eax, dword [esp + 0x78]
push eax
mov ecx, esi
call sym.i3FrameworkDx.dll_protected:_int___thiscall_i3UIUniscribe::_ScriptItemize_unsigned_short_int__const__int_
mov dword [esi + 0x14], eax
test eax, eax
jg 0x100bf35a
push 0
push str.void___thiscall_i3UIUniscribe::CreateUIText_class_i3UIText__unsigned_short__int_class_i3::vector_struct_SCRIPT_RUN__class_i3::pool_allocator_struct_SCRIPT_RUN______class_i3::vector_class_i3UIGlyph__class_i3::pool_allocator_class_i3UIGlyph______
push 0x470
push 0
call ebx
push str.m_nItemCount___0
push str.Asserted_:__s
call ebp
add esp, 0x18
mov ecx, esi
call sym.i3FrameworkDx.dll_protected:_int___thiscall_i3UIUniscribe::_ScriptLayOut_void_
cmp eax, 0xffffffff
jg 0x100bf385
push 0
push str.void___thiscall_i3UIUniscribe::CreateUIText_class_i3UIText__unsigned_short__int_class_i3::vector_struct_SCRIPT_RUN__class_i3::pool_allocator_struct_SCRIPT_RUN______class_i3::vector_class_i3UIGlyph__class_i3::pool_allocator_class_i3UIGlyph______
push 0x473
push 0
call ebx
push str.re____1
push str.Asserted_:__s
call ebp
add esp, 0x18
mov ecx, esi
call sym.i3FrameworkDx.dll_protected:_void___thiscall_i3UIUniscribe::_ReadyBuffers_void_
cmp dword [esi + 0x14], 0
mov dword [esp + 0x78], 0
jle 0x100bf5d9
mov edi, edi
mov ecx, dword [esi + 0x18]
mov edx, dword [esp + 0x78]
mov ebp, dword [ecx + edx*4]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + ebp*8]
mov ebx, dword [eax + ebp*8 + 8]
mov edx, dword [esp + 0x74]
lea edx, [edx + ecx*2]
sub ebx, ecx
mov ecx, dword [esi + 0x28]
lea eax, [eax + ebp*8]
lea edi, [ebp*4]
add ecx, edi
push ecx
mov ecx, dword [esi + 0x24]
add ecx, edi
push ecx
mov ecx, dword [esi + 0x2c]
add ecx, edi
push ecx
add eax, 4
push eax
push ebx
push edx
mov ecx, esi
mov dword [esp + 0x2c], edx
call sym.i3FrameworkDx.dll_protected:_int___thiscall_i3UIUniscribe::_ScriptShape_unsigned_short_int__const__int__struct_tag_SCRIPT_ANALYSIS___unsigned_short_int____unsigned_short_int____struct_tag_SCRIPT_VISATTR___
cmp eax, 1
mov dword [esp + 0x70], eax
jge 0x100bf3ff
mov dword [esp + 0x70], 1
mov eax, dword [esp + 0x70]
push 0x48d
push str......._srci3Frameworki3UIUniscribei3UIUniscribe.cpp
lea edx, [eax*4]
mov eax, dword [esi + 0x30]
mov ecx, dword [edi + eax]
push 0x10
push edx
mov edx, dword [0x101235a8]
mov eax, dword [edx]
push ecx
call eax
mov ecx, dword [esi + 0x30]
mov edx, dword [esp + 0x84]
push 0x48e
mov dword [edi + ecx], eax
mov ecx, dword [esi + 0x34]
push str......._srci3Frameworki3UIUniscribei3UIUniscribe.cpp
lea eax, [edx*8]
mov edx, dword [edi + ecx]
push 0x10
push eax
mov eax, dword [0x101235a8]
mov ecx, dword [eax]
push edx
call ecx
mov edx, dword [esi + 0x34]
mov dword [edi + edx], eax
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x30]
add esp, 0x28
add ecx, edi
lea eax, [esp + 0x20]
push eax
mov eax, dword [esi + 0x10]
push ecx
add edx, edi
push edx
mov edx, dword [esi + 0x28]
lea ecx, [eax + ebp*8 + 4]
mov eax, dword [edi + edx]
mov edx, dword [esi + 0x2c]
push ecx
mov ecx, dword [esp + 0x80]
push eax
mov eax, dword [edi + edx]
push ecx
push eax
mov ecx, esi
call sym.i3FrameworkDx.dll_protected:_void___thiscall_i3UIUniscribe::_ScriptPlace_unsigned_short_int___int__struct_tag_SCRIPT_VISATTR___struct_tag_SCRIPT_ANALYSIS___int____struct_tagGOFFSET____struct__ABC__
mov ecx, dword [esi + 0x20]
mov edx, dword [edi + ecx]
mov eax, dword [0x101235a8]
mov ecx, dword [eax]
push 0x495
push str......._srci3Frameworki3UIUniscribei3UIUniscribe.cpp
push 0x10
push ebx
push edx
call ecx
mov edx, dword [esi + 0x20]
mov dword [edi + edx], eax
mov eax, dword [esi + 0x20]
mov eax, dword [edi + eax]
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x28]
add esp, 0x14
push eax
lea ecx, [ecx + ebp*8 + 4]
push ecx
push ebx
push edx
call fcn.100ecbd8
test eax, eax
jge 0x100bf4ff
push 0
push str.void___thiscall_i3UIUniscribe::_ScriptBreak_unsigned_short_const__int_struct_tag_SCRIPT_ANALYSIS__struct_tag_SCRIPT_LOGATTR__
push 0x111
push 0
call dword [0x10123834]
push 0x1013cb04
push str.Asserted_:__s
call dword [0x10123838]
add esp, 0x18
mov eax, dword [esp + 0x70]
test eax, eax
jle 0x100bf5c3
test ebx, ebx
jle 0x100bf5c3
mov ecx, dword [esi + 0x10]
lea edx, [ecx + ebp*8 + 4]
mov ecx, dword [esi + 0x44]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x60], ecx
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x38], edx
mov edx, dword [edi + ecx]
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x5c], edx
mov edx, dword [edi + ecx]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x2c]
mov ecx, dword [edi + eax]
mov dword [esp + 0x50], edx
mov edx, dword [esi + 0x30]
mov eax, dword [edi + edx]
mov dword [esp + 0x40], ecx
mov ecx, dword [esi + 0x34]
mov edx, dword [edi + ecx]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x28]
mov ecx, dword [edi + eax]
mov dword [esp + 0x4c], edx
lea edx, [esp + 0x2c]
mov dword [esp + 0x54], ecx
push edx
mov ecx, esi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x40], ebx
mov dword [esp + 0x5c], 0
call sym.i3FrameworkDx.dll_protected:_struct_SCRIPT_RUN____thiscall_i3UIUniscribe::__CreateRun_struct_SCRIPT_RUN_const__
mov ecx, dword [esp + 0x7c]
mov dword [eax + 0x3c], 0xffffffff
mov edi, dword [ecx + 4]
mov edx, dword [ecx]
mov ebx, dword [ecx + 8]
mov ebp, edi
sub ebx, edx
sub ebp, edx
sar ebx, 2
sar ebp, 2
mov dword [esp + 0x70], eax
cmp ebp, ebx
jae 0x100bf5b8
mov dword [edi], eax
add dword [ecx + 4], 4
jmp 0x100bf5c3
lea eax, [esp + 0x70]
push eax
push edi
call fcn.100bab20
mov eax, dword [esp + 0x78]
inc eax
cmp eax, dword [esi + 0x14]
mov dword [esp + 0x78], eax
jl 0x100bf3a0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [esi + 0x40]
push ecx
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esi + 0x40]
push eax
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x1c]
push edi
push ecx
push edx
push eax
mov ecx, esi
mov dword [esi + 0x40], 0
call sym.i3FrameworkDx.dll_protected:_void___thiscall_i3UIUniscribe::_ScriptTextOut_class_i3UIFont___class_i3::vector_struct_SCRIPT_RUN___class_i3::pool_allocator_struct_SCRIPT_RUN____const___class_i3::vector_class_i3UIGlyph___class_i3::pool_allocator_class_i3UIGlyph______int_
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x14