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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
mov eax, dword [0x100b4040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
movss xmm0, dword [edi + 0x10]
mov eax, dword [edi + 0x34]
movsx ecx, word [edi + 0x38]
cvtps2pd xmm0, xmm0
test eax, eax
je 0x10022180
add eax, 0x4a
jmp 0x10022185
mov eax, 0x1009b3b6
push ecx
push dword [edi + 0x20]
sub esp, 8
movsd qword [esp], xmm0
push eax
push str.Font:___s__n_.2f_px___d_glyphs___d_file_s_
push edi
call fcn.10081e30
movss xmm1, dword [0x100b1560]
add esp, 0x1c
xorps xmm0, xmm0
mov bl, al
call fcn.10013c20
mov esi, dword [0x10103264]
lea edx, [ebp - 0x38]
push 0x8000
mov ecx, str.Set_as_default
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
movss xmm0, dword [esi + 0x37d8]
movss dword [ebp - 0x10], xmm0
mov dword [esi + 0x37d8], 0
call fcn.1006d100
movss xmm0, dword [ebp - 0x10]
add esp, 4
movss dword [esi + 0x37d8], xmm0
test al, al
je 0x1002220b
mov eax, dword [0x10103264]
mov dword [eax + 0x54], edi
test bl, bl
je 0x100229c1
mov ecx, edi
call fcn.10010960
push str.The_quick_brown_fox_jumps_over_the_lazy_dog
call fcn.1006be90
add esp, 4
call fcn.10010a20
mov eax, dword [0x10103264]
mov edx, 8
movss xmm3, dword [0x100b125c]
mov ecx, str.Font_scale
push 0
push str._.1f
movss xmm0, dword [eax + 0x3bb4]
mulss xmm0, dword [0x100b13ec]
or dword [eax + 0x4688], 1
mov dword [ebp - 0x14], 0x3e99999a
mov dword [ebp - 0x10], 0x40000000
movss dword [eax + 0x468c], xmm0
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [edi + 0x44]
push eax
call fcn.10073150
movss xmm1, dword [0x100b1560]
add esp, 0x14
xorps xmm0, xmm0
call fcn.10013c20
mov ecx, str.Note_than_the_default_embedded_font_is_NOT_meant_to_be_scaled._n_nFont_are_currently_rendered_into_bitmaps_at_a_given_size_at_the_time_of_building_the_atlas._You_may_oversample_them_to_get_some_flexibility_with_scaling._You_can_also_render_at_multiple_sizes_and_select_which_one_to_use_at_runtime._n_n_Glimmer_of_hope:_the_atlas_system_will_be_rewritten_in_the_future_to_make_scaling_more_flexible._
call fcn.1001ce60
movss xmm2, dword [edi + 0x48]
sub esp, 0x18
movss xmm1, dword [edi + 0x4c]
movaps xmm0, xmm2
subss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp + 8], xmm0
cvtps2pd xmm0, xmm2
movsd qword [esp], xmm0
push str.Ascent:__f__Descent:__f__Height:__f
call fcn.1006be90
movzx esi, word [edi + 0x3a]
lea ecx, [ebp - 0xc]
add esp, 0x1c
mov edx, esi
call fcn.10003ad0
push esi
push eax
push str.Fallback_character:__s__U_04X_
call fcn.1006be90
movzx esi, word [edi + 0x3c]
lea ecx, [ebp - 0xc]
add esp, 0xc
mov edx, esi
call fcn.10003ad0
push esi
push eax
push str.Ellipsis_character:__s__U_04X_
call fcn.1006be90
mov esi, dword [edi + 0x50]
add esp, 0xc
movd xmm0, esi
cvtdq2ps xmm0, xmm0
call fcn.10001330
cvttss2si eax, xmm0
push eax
push eax
push esi
push str.Texture_Area:_about__d_px__dx_d_px
call fcn.1006be90
xor eax, eax
add esp, 0x10
xor esi, esi
cmp ax, word [edi + 0x38]
jge 0x100223a5
xor ebx, ebx
nop dword [eax]
mov eax, dword [edi + 0x34]
test eax, eax
je 0x10022399
lea ecx, [ebx + eax]
test ecx, ecx
je 0x10022399
movss xmm0, dword [ecx + 0x2c]
sub esp, 0x10
movzx eax, byte [ecx + 0x1c]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [ecx + 0x28]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
push dword [ecx + 0x18]
lea eax, [ecx + 0x4a]
push dword [ecx + 0x14]
push eax
push esi
push str.Input__d:__s__Oversample:___d__d___PixelSnapH:__d__Offset:___.1f__.1f_
call fcn.1006c580
add esp, 0x28
movsx eax, word [edi + 0x38]
inc esi
add ebx, 0x78
cmp esi, eax
jl 0x10022350
push dword [edi + 0x20]
push str.Glyphs___d_
push str.Glyphs
call fcn.10081e10
add esp, 0xc
test al, al
je 0x100229bc
mov edx, dword [0x10103264]
xorps xmm6, xmm6
movss xmm0, dword [0x100b1304]
mov eax, dword [edx + 0x3e28]
mov byte [eax + 0xa8], 1
movups xmm3, xmmword [edx + 0x3860]
mov eax, dword [edx + 0x3e28]
comiss xmm6, xmm3
mov ebx, dword [eax + 0x268]
mov dword [ebp - 0x3c], ebx
movaps xmm2, xmm3
shufps xmm2, xmm3, 0xff
mulss xmm2, dword [edx + 0x3798]
movups xmmword [ebp - 0x24], xmm3
jbe 0x10022413
xorps xmm1, xmm1
jmp 0x1002241a
movaps xmm1, xmm0
minss xmm1, xmm3
movss xmm3, dword [0x100b14c8]
movss xmm5, dword [0x100b12bc]
movss xmm4, dword [ebp - 0x20]
comiss xmm6, xmm4
mulss xmm1, xmm3
addss xmm1, xmm5
cvttss2si ecx, xmm1
jbe 0x10022445
xorps xmm1, xmm1
jmp 0x1002244c
movaps xmm1, xmm0
minss xmm1, xmm4
movss xmm4, dword [ebp - 0x1c]
mulss xmm1, xmm3
addss xmm1, xmm5
cvttss2si eax, xmm1
shl eax, 8
or ecx, eax
comiss xmm6, xmm4
jbe 0x1002246c
xorps xmm1, xmm1
jmp 0x10022473
movaps xmm1, xmm0
minss xmm1, xmm4
mulss xmm1, xmm3
addss xmm1, xmm5
cvttss2si eax, xmm1
shl eax, 0x10
or ecx, eax
comiss xmm6, xmm2
jbe 0x1002248e
xorps xmm0, xmm0
jmp 0x10022492
minss xmm0, xmm2
movss xmm2, dword [edi + 0x10]
mulss xmm0, xmm3
movss dword [ebp - 0x14], xmm2
addss xmm0, xmm5
cvttss2si eax, xmm0
movss xmm0, dword [edx + 0x37e8]
shl eax, 0x18
or eax, ecx
movss dword [ebp - 0x40], xmm0
mov dword [ebp - 0x48], eax
xor esi, esi
mov eax, 0xfff
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x2c], eax
nop word [eax + eax]
test esi, 0xfff
jne 0x10022521
mov edx, esi
shr eax, 0xc
shr edx, 0xc
mov dword [ebp - 0x10], eax
cmp edx, eax
ja 0x1002250e
mov esi, edx
shr esi, 3
cmp esi, 2
jae 0x10022506
mov ecx, edx
mov eax, 1
and ecx, 7
shl eax, cl
test byte [edi + esi + 0x54], al
jne 0x10022521
mov eax, dword [ebp - 0x10]
inc edx
cmp edx, eax
jbe 0x100224e7
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
add esi, 0xf00
add eax, 0xf00
jmp 0x1002299a
mov ebx, dword [ebp - 0x28]
xor esi, esi
xor edx, edx
nop dword [eax + eax]
lea eax, [edx + ebx]
movzx ecx, ax
cmp ecx, dword [edi + 0x14]
jae 0x1002255a
mov eax, dword [edi + 0x1c]
movzx eax, word [eax + ecx*2]
mov ecx, 0xffff
cmp ax, cx
je 0x1002255a
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x28]
lea eax, [eax + ecx*8]
test eax, eax
je 0x1002255a
inc esi
inc edx
cmp edx, 0x100
jb 0x10022530
mov ebx, dword [ebp - 0x3c]
test esi, esi
jle 0x10022994
cmp esi, 1
mov ecx, str.glyph
mov eax, str.glyphs
cmovle eax, ecx
push eax
push esi
mov esi, dword [ebp - 0x28]
lea eax, [esi + 0xff]
push eax
push esi
push str.U_04X..U_04X___d__s_
push esi
call fcn.10081e30
add esp, 0x18
test al, al
je 0x10022997
mov eax, dword [0x10103264]
xor ecx, ecx
movss xmm2, dword [ebp - 0x40]
movss xmm5, dword [ebp - 0x14]
addss xmm2, xmm5
mov dword [ebp - 0x30], ecx
mov eax, dword [eax + 0x3e28]
movss xmm3, dword [eax + 0xec]
movss xmm4, dword [eax + 0xf0]
movss dword [ebp - 0x54], xmm3
movss dword [ebp - 0x58], xmm4
movss dword [ebp - 0x10], xmm2
nop
mov eax, ecx
and eax, 0xf
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100b1760]
mov eax, ecx
shr eax, 4
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm1, xmm2
addsd xmm0, qword [eax*8 + 0x100b1760]
lea eax, [ecx + esi]
addss xmm1, xmm3
movzx ecx, ax
cvtpd2ps xmm0, xmm0
movaps xmm3, xmm1
movss dword [ebp - 0x38], xmm1
addss xmm3, xmm5
mulss xmm0, xmm2
addss xmm0, xmm4
movss dword [ebp - 0x4c], xmm3
movaps xmm4, xmm0
movss dword [ebp - 0x34], xmm0
addss xmm4, xmm5
movss dword [ebp - 0x50], xmm4
cmp ecx, dword [edi + 0x14]
jb 0x1002265b
xor esi, esi
jmp 0x10022679
mov eax, dword [edi + 0x1c]
movzx eax, word [eax + ecx*2]
mov ecx, 0xffff
cmp ax, cx
jne 0x10022670
xor esi, esi
jmp 0x10022679
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x28]
lea esi, [eax + ecx*8]
movss xmm5, dword [0x100b12bc]
test esi, esi
mov ecx, 0x64ffffff
addss xmm1, xmm5
mov eax, 0x32ffffff
movaps xmm2, xmm0
cmovne eax, ecx
addss xmm2, xmm5
test byte [ebx + 0x24], 1
movaps xmm0, xmm3
mov dword [ebp - 0x44], eax
mov ecx, ebx
push 0
xorps xmm3, xmm3
je 0x100226d6
subss xmm0, xmm5
movss dword [ebp - 0x68], xmm1
lea eax, [ebp - 0x60]
movss dword [ebp - 0x64], xmm2
push eax
lea eax, [ebp - 0x68]
movss dword [ebp - 0x60], xmm0
movaps xmm0, xmm4
subss xmm0, xmm5
movss dword [ebp - 0x5c], xmm0
jmp 0x10022704
subss xmm0, dword [0x100b12b8]
lea eax, [ebp - 0x70]
movss dword [ebp - 0x78], xmm1
push eax
movss dword [ebp - 0x74], xmm2
lea eax, [ebp - 0x78]
movss dword [ebp - 0x70], xmm0
movaps xmm0, xmm4
subss xmm0, dword [0x100b12b8]
movss dword [ebp - 0x6c], xmm0
push eax
call fcn.10059510
push ecx
mov dword [esp], 0x3f800000
mov ecx, ebx
push 1
push dword [ebp - 0x44]
push dword [ebx + 0x54]
push dword [ebx + 0x5c]
call fcn.10057460
mov dword [ebx + 0x54], 0
test esi, esi
je 0x100228db
mov eax, dword [ebp - 0x30]
mov ecx, edi
add eax, dword [ebp - 0x28]
movss xmm2, dword [ebp - 0x14]
push eax
push dword [ebp - 0x48]
lea eax, [ebp - 0x38]
push eax
push ebx
call fcn.1005de50
mov ecx, dword [0x10103264]
movss xmm5, dword [ebp - 0x38]
movss xmm3, dword [ebp - 0x4c]
movss xmm2, dword [ebp - 0x34]
mov eax, dword [ecx + 0x3e28]
movss xmm1, dword [ecx + 0x37fc]
movss xmm4, dword [ebp - 0x50]
movss xmm0, dword [ecx + 0x3800]
maxss xmm5, dword [eax + 0x214]
minss xmm3, dword [eax + 0x21c]
maxss xmm2, dword [eax + 0x218]
minss xmm4, dword [eax + 0x220]
subss xmm5, xmm1
addss xmm3, xmm1
movss xmm1, dword [ecx + 0xdb8]
subss xmm2, xmm0
addss xmm4, xmm0
comiss xmm1, xmm5
jb 0x100228db
movss xmm0, dword [ecx + 0xdbc]
comiss xmm0, xmm2
jb 0x100228db
comiss xmm3, xmm1
jbe 0x100228db
comiss xmm4, xmm0
jbe 0x100228db
xor ecx, ecx
call fcn.10014990
mov eax, dword [esi]
shr eax, 2
push eax
push str.Codepoint:_U_04X
call fcn.1006be90
mov eax, dword [0x10103264]
add esp, 8
mov ecx, dword [eax + 0x3e28]
cmp byte [ecx + 0xab], 0
jne 0x10022822
mov ecx, dword [ecx + 0x19c]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.100713b0
mov eax, dword [esi]
shr eax, 1
and eax, 1
push eax
push str.Visible:__d
call fcn.1006be90
movss xmm0, dword [esi + 4]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str.AdvanceX:__.1f
call fcn.1006be90
movss xmm0, dword [esi + 0x14]
sub esp, 0x14
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
movss xmm0, dword [esi + 0x10]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movss xmm0, dword [esi + 0xc]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [esi + 8]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str.Pos:___.2f__.2f_____.2f__.2f_
call fcn.1006be90
movss xmm0, dword [esi + 0x24]
add esp, 4
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
movss xmm0, dword [esi + 0x20]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movss xmm0, dword [esi + 0x1c]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [esi + 0x18]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str.UV:___.3f__.3f_____.3f__.3f_
call fcn.1006be90
add esp, 0x24
call fcn.10010450
mov ecx, dword [ebp - 0x30]
movss xmm2, dword [ebp - 0x10]
inc ecx
movss xmm3, dword [ebp - 0x54]
movss xmm4, dword [ebp - 0x58]
movss xmm5, dword [ebp - 0x14]
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x30], ecx
cmp ecx, 0x100
jb 0x100225e0
mov ecx, dword [0x10103264]
movaps xmm4, xmm2
mulss xmm4, dword [0x100b140c]
mov eax, dword [ecx + 0x3e28]
movss dword [ebp - 0x80], xmm4
movss dword [ebp - 0x7c], xmm4
mov byte [eax + 0xa8], 1
mov eax, dword [ecx + 0x3e28]
cmp byte [eax + 0xab], 0
jne 0x1002298f
movss xmm0, dword [eax + 0xf0]
lea ecx, [ebp - 0x80]
movss xmm2, dword [eax + 0xec]
movaps xmm1, xmm0
addss xmm1, xmm4
movss dword [ebp - 0x24], xmm2
movaps xmm3, xmm2
movss dword [ebp - 0x20], xmm0
addss xmm3, xmm4
movss dword [ebp - 0x18], xmm1
movss xmm1, dword [0x100b1560]
movss dword [ebp - 0x1c], xmm3
call fcn.100138a0
push 0
push 0
xor edx, edx
lea ecx, [ebp - 0x24]
call fcn.10013a00
add esp, 8
call fcn.10082d90
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
add esi, 0x100
add eax, 0x100
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x2c], eax
cmp esi, 0xffff
jbe 0x100224d0
call fcn.10082d90
call fcn.10082d90
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10098200
mov esp, ebp
pop ebp
ret