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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8c
mov eax, dword [0x10162378]
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 0x100315c0
add eax, 0x4a
jmp 0x100315c5
mov eax, 0x1012589a
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.100996e0
movss xmm1, dword [0x1015cc50]
add esp, 0x1c
xorps xmm0, xmm0
mov bl, al
call fcn.100173a0
mov esi, dword [0x10167324]
lea edx, [ebp - 0x3c]
push 0x8000
mov ecx, str.Set_as_default
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
movss xmm0, dword [esi + 0x3994]
movss dword [ebp - 0x10], xmm0
mov dword [esi + 0x3994], 0
call fcn.10084a80
movss xmm0, dword [ebp - 0x10]
add esp, 4
movss dword [esi + 0x3994], xmm0
test al, al
je 0x1003164b
mov eax, dword [0x10167324]
mov dword [eax + 0x38], edi
test bl, bl
je 0x10031e8f
mov ecx, edi
call fcn.10014010
push str.The_quick_brown_fox_jumps_over_the_lazy_dog
call fcn.100838c0
add esp, 4
call fcn.100140d0
mov eax, dword [0x10167324]
mov edx, 8
movss xmm3, dword [0x1015c988]
mov ecx, str.Font_scale
push 0
push str._.1f
movss xmm0, dword [eax + 0x3dcc]
mulss xmm0, dword [0x1015cb10]
or dword [eax + 0x4988], 1
mov dword [ebp - 0x14], 0x3e99999a
mov dword [ebp - 0x10], 0x40000000
movss dword [eax + 0x4990], xmm0
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [edi + 0x4c]
push eax
call fcn.10089dc0
movss xmm1, dword [0x1015cc50]
add esp, 0x14
xorps xmm0, xmm0
call fcn.100173a0
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.1002b4b0
movss xmm2, dword [edi + 0x50]
sub esp, 0x18
movss xmm1, dword [edi + 0x54]
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.100838c0
movzx esi, word [edi + 0x3a]
lea ecx, [ebp - 0xc]
add esp, 0x1c
mov edx, esi
call fcn.10004470
push esi
push eax
push str.Fallback_character:__s__U_04X_
call fcn.100838c0
movzx esi, word [edi + 0x3c]
lea ecx, [ebp - 0xc]
add esp, 0xc
mov edx, esi
call fcn.10004470
push esi
push eax
push str.Ellipsis_character:__s__U_04X_
call fcn.100838c0
mov esi, dword [edi + 0x58]
add esp, 0xc
movd xmm0, esi
cvtdq2ps xmm0, xmm0
call fcn.10001380
cvttss2si eax, xmm0
push eax
push eax
push esi
push str.Texture_Area:_about__d_px__dx_d_px
call fcn.100838c0
xor eax, eax
add esp, 0x10
xor esi, esi
cmp ax, word [edi + 0x38]
jge 0x100317e5
xor ebx, ebx
nop dword [eax]
mov eax, dword [edi + 0x34]
test eax, eax
je 0x100317d9
lea ecx, [ebx + eax]
test ecx, ecx
je 0x100317d9
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.10083fb0
add esp, 0x28
movsx eax, word [edi + 0x38]
inc esi
add ebx, 0x78
cmp esi, eax
jl 0x10031790
push dword [edi + 0x20]
push str.Glyphs___d_
push str.Glyphs
call fcn.100996c0
add esp, 0xc
test al, al
je 0x10031e8a
mov edx, dword [0x10167324]
xorps xmm5, xmm5
movss xmm6, dword [0x1015ca30]
mov eax, dword [edx + 0x4064]
mov byte [eax + 0xe1], 1
movups xmm2, xmmword [edx + 0x3a3c]
mov eax, dword [edx + 0x4064]
comiss xmm5, xmm2
mov eax, dword [eax + 0x2a4]
mov dword [ebp - 0x40], eax
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xff
mulss xmm1, dword [edx + 0x3954]
movups xmmword [ebp - 0x24], xmm2
jbe 0x10031853
xorps xmm0, xmm0
jmp 0x1003185a
movaps xmm0, xmm6
minss xmm0, xmm2
movss xmm2, dword [0x1015cbc8]
movss xmm4, dword [0x1015c9e4]
movss xmm3, dword [ebp - 0x20]
comiss xmm5, xmm3
mulss xmm0, xmm2
addss xmm0, xmm4
cvttss2si ecx, xmm0
jbe 0x10031885
xorps xmm0, xmm0
jmp 0x1003188c
movaps xmm0, xmm6
minss xmm0, xmm3
movss xmm3, dword [ebp - 0x1c]
mulss xmm0, xmm2
addss xmm0, xmm4
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm5, xmm3
jbe 0x100318ac
xorps xmm0, xmm0
jmp 0x100318b3
movaps xmm0, xmm6
minss xmm0, xmm3
mulss xmm0, xmm2
addss xmm0, xmm4
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm5, xmm1
jbe 0x100318ce
xorps xmm0, xmm0
jmp 0x100318d5
movaps xmm0, xmm6
minss xmm0, xmm1
mulss xmm0, xmm2
movss xmm2, dword [edi + 0x10]
movss dword [ebp - 0x34], xmm2
addss xmm0, xmm4
cvttss2si eax, xmm0
movss xmm0, dword [edx + 0x39a4]
shl eax, 0x18
or eax, ecx
movss dword [ebp - 0x44], xmm0
mov dword [ebp - 0x4c], eax
mov ecx, 0xfff
xor eax, eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], eax
nop dword [eax]
test eax, 0xfff
jne 0x1003195f
mov ebx, ecx
mov edx, eax
shr ebx, 0xc
shr edx, 0xc
cmp edx, ebx
ja 0x1003194c
mov esi, edx
shr esi, 3
cmp esi, 2
jae 0x10031941
mov ecx, edx
mov eax, 1
and ecx, 7
shl eax, cl
test byte [edi + esi + 0x5c], al
jne 0x1003195c
inc edx
cmp edx, ebx
jbe 0x10031925
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
add eax, 0xf00
add ecx, 0xf00
jmp 0x10031e69
mov eax, dword [ebp - 0x28]
mov ebx, dword [edi + 0x14]
xor esi, esi
xor edx, edx
movzx eax, ax
mov ecx, eax
add eax, edx
mov dword [ebp - 0x10], ecx
movzx ecx, ax
cmp ecx, ebx
jb 0x1003197b
xor ecx, ecx
jmp 0x10031999
mov eax, dword [edi + 0x1c]
movzx eax, word [eax + ecx*2]
mov ecx, 0xffff
cmp ax, cx
jne 0x10031990
xor ecx, ecx
jmp 0x10031999
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x28]
lea ecx, [eax + ecx*8]
test ecx, ecx
lea eax, [esi + 1]
cmove eax, esi
inc edx
mov esi, eax
mov eax, dword [ebp - 0x28]
cmp edx, 0x100
jb 0x10031966
mov eax, dword [ebp - 0x10]
movzx ebx, ax
mov dword [ebp - 0x60], ebx
test esi, esi
jle 0x10031e63
cmp esi, 1
mov ecx, str.glyph
mov eax, str.glyphs
cmovle eax, ecx
mov ecx, dword [ebp - 0x28]
push eax
push esi
lea eax, [ecx + 0xff]
push eax
push ecx
push str.U_04X..U_04X___d__s_
push ecx
call fcn.100996e0
add esp, 0x18
test al, al
je 0x10031e63
mov eax, dword [0x10167324]
xor ecx, ecx
movss xmm3, dword [ebp - 0x44]
movss xmm5, dword [ebp - 0x34]
addss xmm3, xmm5
mov dword [ebp - 0x14], ecx
mov eax, dword [eax + 0x4064]
movss xmm2, dword [eax + 0x128]
movss xmm4, dword [eax + 0x12c]
movss dword [ebp - 0x58], xmm2
movss dword [ebp - 0x5c], xmm4
movss dword [ebp - 0x10], xmm3
mov eax, ecx
and eax, 0xf
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1015ce90]
mov eax, ecx
shr eax, 4
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm1, xmm3
addsd xmm0, qword [eax*8 + 0x1015ce90]
lea eax, [ecx + ebx]
addss xmm1, xmm2
movzx ecx, ax
mov dword [ebp - 0x48], eax
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm1
movss dword [ebp - 0x30], xmm1
addss xmm0, xmm5
mulss xmm2, xmm3
movss dword [ebp - 0x3c], xmm1
addss xmm2, xmm4
movss dword [ebp - 0x50], xmm0
movaps xmm3, xmm2
movss dword [ebp - 0x38], xmm2
addss xmm3, xmm5
movss dword [ebp - 0x54], xmm3
cmp ecx, dword [edi + 0x14]
jb 0x10031ab3
xor esi, esi
jmp 0x10031ad1
mov eax, dword [edi + 0x1c]
movzx eax, word [eax + ecx*2]
mov ecx, 0xffff
cmp ax, cx
jne 0x10031ac8
xor esi, esi
jmp 0x10031ad1
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x28]
lea esi, [eax + ecx*8]
movss xmm4, dword [0x1015c9e4]
test esi, esi
mov eax, 0x64ffffff
addss xmm1, xmm4
mov ebx, 0x32ffffff
addss xmm2, xmm4
cmovne ebx, eax
mov eax, dword [ebp - 0x40]
push 0
test byte [eax + 0x24], 1
je 0x10031b23
subss xmm0, xmm4
movss dword [ebp - 0x70], xmm1
lea ecx, [ebp - 0x68]
movss dword [ebp - 0x6c], xmm2
push ecx
lea ecx, [ebp - 0x70]
movss dword [ebp - 0x68], xmm0
movaps xmm0, xmm3
subss xmm0, xmm4
movss dword [ebp - 0x64], xmm0
jmp 0x10031b51
subss xmm0, dword [0x1015c9e0]
lea ecx, [ebp - 0x78]
movss dword [ebp - 0x80], xmm1
push ecx
movss dword [ebp - 0x7c], xmm2
lea ecx, [ebp - 0x80]
movss dword [ebp - 0x78], xmm0
movaps xmm0, xmm3
subss xmm0, dword [0x1015c9e0]
movss dword [ebp - 0x74], xmm0
push ecx
xorps xmm3, xmm3
mov ecx, eax
call fcn.1006d0f0
push ecx
mov dword [esp], 0x3f800000
push 1
push ebx
mov ebx, dword [ebp - 0x40]
mov ecx, ebx
push dword [ebx + 0x54]
push dword [ebx + 0x5c]
call fcn.1006af20
mov dword [ebx + 0x54], 0
test esi, esi
je 0x10031da1
push dword [ebp - 0x48]
movss xmm2, dword [ebp - 0x34]
lea eax, [ebp - 0x3c]
push dword [ebp - 0x4c]
mov ecx, edi
push eax
push ebx
call fcn.10072100
mov ecx, dword [0x10167324]
movss xmm0, dword [ebp - 0x30]
movss xmm6, dword [ebp - 0x38]
movss xmm5, dword [ebp - 0x50]
mov eax, dword [ecx + 0x4064]
movss xmm3, dword [ecx + 0x39b8]
movss xmm7, dword [ecx + 0xe08]
movss xmm4, dword [ebp - 0x54]
maxss xmm0, dword [eax + 0x248]
maxss xmm6, dword [eax + 0x24c]
minss xmm5, dword [eax + 0x250]
minss xmm4, dword [eax + 0x254]
movss dword [ebp - 0x30], xmm0
subss xmm0, xmm3
comiss xmm7, xmm0
jb 0x10031da1
movss xmm1, dword [ecx + 0x39bc]
movaps xmm0, xmm6
movss xmm2, dword [ecx + 0xe0c]
subss xmm0, xmm1
comiss xmm2, xmm0
jb 0x10031da1
movaps xmm0, xmm5
addss xmm0, xmm3
comiss xmm0, xmm7
jbe 0x10031da1
movaps xmm0, xmm4
addss xmm0, xmm1
comiss xmm0, xmm2
jbe 0x10031da1
mov eax, dword [ecx + 0x4af4]
movss xmm2, dword [eax + 0xc]
movss xmm3, dword [eax + 8]
movaps xmm0, xmm2
addss xmm0, dword [eax + 0x14]
movaps xmm1, xmm3
addss xmm1, dword [eax + 0x10]
comiss xmm0, xmm6
jbe 0x10031da1
comiss xmm4, xmm2
jbe 0x10031da1
comiss xmm1, dword [ebp - 0x30]
jbe 0x10031da1
comiss xmm5, xmm3
jbe 0x10031da1
xor ecx, ecx
call fcn.10018420
test al, al
je 0x10031da1
mov eax, dword [esi]
shr eax, 2
push eax
push str.Codepoint:_U_04X
call fcn.100838c0
mov eax, dword [0x10167324]
add esp, 8
mov eax, dword [eax + 0x4064]
cmp byte [eax + 0xe4], 0
jne 0x10031ce8
mov edx, dword [eax + 0x1d0]
mov ecx, edx
neg ecx
sbb ecx, ecx
add ecx, 2
cmp dword [eax + 0x1c8], 0
je 0x10031cdb
mov ecx, edx
neg ecx
sbb ecx, ecx
add ecx, 6
movss xmm1, dword [0x1015ca30]
call fcn.10087980
mov eax, dword [esi]
shr eax, 1
and eax, 1
push eax
push str.Visible:__d
call fcn.100838c0
movss xmm0, dword [esi + 4]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str.AdvanceX:__.1f
call fcn.100838c0
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.100838c0
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.100838c0
add esp, 0x24
call fcn.10013850
mov ecx, dword [ebp - 0x14]
movss xmm3, dword [ebp - 0x10]
inc ecx
movss xmm2, dword [ebp - 0x58]
movss xmm4, dword [ebp - 0x5c]
movss xmm5, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x14], ecx
cmp ecx, 0x100
jb 0x10031a30
mov ecx, dword [0x10167324]
movaps xmm4, xmm3
mulss xmm4, dword [0x1015cb2c]
mov eax, dword [ecx + 0x4064]
movss dword [ebp - 0x88], xmm4
movss dword [ebp - 0x84], xmm4
mov byte [eax + 0xe1], 1
mov eax, dword [ecx + 0x4064]
cmp byte [eax + 0xe4], 0
jne 0x10031e5e
movss xmm0, dword [eax + 0x12c]
lea ecx, [ebp - 0x88]
movss xmm2, dword [eax + 0x128]
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 [0x1015cc50]
movss dword [ebp - 0x1c], xmm3
call fcn.10016fc0
push 0
push 0
xor edx, edx
lea ecx, [ebp - 0x24]
call fcn.10017120
add esp, 8
call fcn.1009aaa0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
add eax, 0x100
add ecx, 0x100
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], ecx
cmp eax, 0xffff
jbe 0x10031910
call fcn.1009aaa0
call fcn.1009aaa0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10110a52
mov esp, ebp
pop ebp
ret