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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x220
movzx ebx, word [edx + 0x3d]
mov eax, dword [ebp + 8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], edx
cmp bl, 2
jne 0x48b5df
mov edi, dword [eax + 0xe0]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047eb6d
mov ecx, esi
movzx ebx, byte [edi + 0x224]
mov esi, dword [esp + 0x28]
call fcn.0047eb86
shl ebx, 0x10
jmp 0x48b5ea
movzx eax, byte [edx + 0x3f]
mov esi, edx
shl eax, 0x10
or ebx, eax
mov edx, dword [esi]
mov dword [esp + 0x1c], ebx
cmp edx, 3
jne 0x48b680
mov ebx, dword [esi + 4]
lea ecx, [ebx + 8]
call fcn.004b0ec3
mov edx, dword [ebp + 8]
lea esi, [esp + 0xa8]
mov ecx, esi
push dword [esp + 0x1c]
call fcn.0047e18e
pop eax
movss xmm2, dword [esi]
movss xmm0, dword [esi + 4]
movss xmm1, dword [esi + 8]
lea esi, [esp + 0xb8]
push 0x16
pop ecx
lea edi, [esp + 0x168]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 8]
movzx eax, byte [eax + 0x36]
test eax, eax
je 0x48b657
cmp eax, 1
jne 0x48b65a
addss xmm2, xmm1
mulss xmm2, dword [0x6460f0]
movaps xmm1, xmm2
mov edi, dword [esp + 0x14]
movss dword [edi + 8], xmm1
movss dword [edi + 0xc], xmm0
mov dword [edi], ebx
mov byte [edi + 4], 1
add edi, 0x10
push 0x16
pop ecx
lea esi, [esp + 0x168]
jmp 0x48bd64
mov ebx, dword [ebp + 8]
xor edi, edi
cmp edx, 2
mov ecx, dword [esi + 4]
lea esi, [esi + 8]
mov dword [esp + 0x40], 3
mov al, byte [ebx + 0xbd]
mov byte [esp + 0x13], al
mov al, byte [ebx + 0xbb]
mov byte [esp + 0xc], al
mov al, byte [ebx + 0xbc]
mov byte [esp + 0x30], al
lea eax, [edx - 1]
cmovae edi, eax
mov eax, dword [ebx + 0x100]
test edi, edi
je 0x48b6e0
cmp edi, 1
jne 0x48b73e
lea eax, [esp + 0x78]
mov dword [eax - 4], ecx
push 0xb
pop ecx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov byte [eax + 0x2c], 1
jmp 0x48b93e
add eax, 8
cmp byte [esp + 0x13], 2
movzx edi, byte [esp + 0xc]
movzx ebx, byte [esp + 0x30]
cmovae ebx, edi
lea edi, [esp + 0xb0]
mov dword [edi - 8], edx
mov dword [edi - 4], ecx
push 0xd
pop ecx
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x110]
lea ecx, [esp + 0x74]
lea edx, [esp + 0xa8]
movsd xmm0, qword [esp + 0x40]
movsd xmm1, qword [esp + 0x48]
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
push ebx
push esi
push eax
call fcn.0048aec3
add esp, 0xc
jmp 0x48b947
mov dword [esp + 0x70], ecx
mov ebx, dword [ecx + 8]
lea ecx, [esp + 0x84]
mov edx, dword [ebx + 0x18]
push dword [ebx + 0x20]
call fcn.0043b820
pop eax
mov edi, dword [ebx + 0x2c]
mov esi, dword [ebx + 0x24]
mov dword [esp + 0x50], ebx
test edi, edi
mov dword [esp + 0x2c], edi
je 0x48b7af
xor ecx, ecx
cmp edi, 0x2492493
setb al
jae 0x48bd6e
imul edx, edi, 0x38
test edx, edx
js 0x48bd6e
mov cl, al
mov dword [esp + 0xc], edx
shl ecx, 2
mov ebx, ecx
call fcn.0043bd7b
mov edi, dword [esp + 0x2c]
test eax, eax
mov dword [esp + 0x20], eax
jne 0x48b7b6
mov edx, dword [esp + 0xc]
mov ecx, ebx
call fcn.0063c970
ud2
push 4
pop eax
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x20]
imul eax, edi, 0x38
mov edx, edi
mov dword [esp + 0x54], eax
xor eax, eax
sub edx, 1
jb 0x48b8c9
cmp dword [esp + 0x54], eax
je 0x48b8c9
lea ecx, [esi + 0x38]
movss xmm0, dword [esi + 0x2c]
mov dword [esp + 0x30], edx
mov edx, esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], ecx
lea ecx, [ebx + eax]
mov dword [esp + 0x64], ecx
mov ecx, dword [esi + 0x30]
movss dword [esp + 0x24], xmm0
mov dword [esp + 0x6c], ecx
mov ecx, dword [esi + 0x34]
mov dword [esp + 0x68], ecx
lea ecx, [esp + 0xa8]
call fcn.00484ae1
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + 0x10]
movzx edx, word [esi + 0x28]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x18]
mov esi, dword [esi + 0x20]
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x60]
mov word [esp + 0xd0], dx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc4], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xc8], esi
mov dword [esp + 0xcc], ecx
push 0xb
pop ecx
lea edx, [esp + 0x110]
lea esi, [esp + 0xa8]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
push 0xb
pop ecx
mov edi, dword [esp + 0x64]
mov esi, edx
mov edx, dword [esp + 0x30]
rep movsd dword es:[edi], dword [esi]
movss xmm0, dword [esp + 0x24]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x2c]
movss dword [ebx + eax + 0x2c], xmm0
mov dword [ebx + eax + 0x30], esi
mov esi, dword [esp + 0x68]
mov dword [ebx + eax + 0x34], esi
mov esi, dword [esp + 0x18]
add eax, 0x38
jmp 0x48b7c5
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edi
mov dword [esp + 0x98], edi
movss xmm0, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
mov cl, byte [ebx + 0x14]
mov edx, dword [ebx + 8]
movss xmm1, dword [ebx + 0x30]
movzx esi, word [ebx + 0x34]
mov ch, byte [ebx + 0x36]
mov dword [esp + 0x74], edx
movss dword [esp + 0x78], xmm0
mov dword [esp + 0x7c], eax
mov byte [esp + 0x80], cl
movss dword [esp + 0x9c], xmm1
mov word [esp + 0xa0], si
mov byte [esp + 0xa2], ch
lea ecx, [esp + 0x70]
mov byte [esp + 0xa4], 1
call fcn.0047cb44
lea ecx, [esp + 0x40]
call fcn.0048b2eb
mov eax, dword [esp + 0x28]
mov esi, dword [ebp + 8]
mov al, byte [eax + 0x3c]
cmp al, 2
jne 0x48b960
mov ecx, esi
call fcn.0048ae79
mov ebx, eax
jmp 0x48b965
test al, al
setne bl
mov ecx, esi
call fcn.0048ab19
test bl, bl
je 0x48bbe6
cmp byte [esp + 0x13], 0
jne 0x48bbee
cmp byte [esi + 0xb8], 0
je 0x48bbee
movaps xmm2, xmmword [0x6461e0]
movss xmm1, dword [0x646004]
andps xmm2, xmm0
ucomiss xmm1, xmm2
jbe 0x48bbee
movss xmm1, dword [esi + 0xac]
mov ecx, esi
movaps xmmword [esp + 0x30], xmm0
movss dword [esp + 0xc], xmm1
movss xmm1, dword [esi + 0xb4]
movss dword [esp + 0x18], xmm1
call fcn.004825df
movss xmm2, dword [esp + 0x18]
movaps xmm1, xmmword [esp + 0x30]
subss xmm2, dword [esp + 0xc]
movss dword [esp + 0x78], xmm1
movss dword [esp + 0x9c], xmm2
and word [esp + 0xa1], 0
cmp dword [esp + 0x98], 0
je 0x48ba20
mov eax, dword [esp + 0x90]
subss xmm1, xmm0
movss dword [eax + 0x2c], xmm1
movss xmm0, dword [esi + 0xac]
movss dword [esp + 0xc], xmm0
push 0xd
pop ecx
lea ebx, [esp + 0xa8]
mov eax, esi
lea esi, [esp + 0x74]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [eax + 0xe0]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047eb6d
mov eax, dword [edi + 0x6c8]
add edi, 0x6c8
mov edx, str.No_fonts_available_until_first_call_to_Context::run__
test eax, eax
cmove edi, eax
mov ecx, edi
push 0x81187c
call fcn.00481450
pop ecx
mov edx, dword [edi]
mov ecx, ebx
call fcn.0048c445
mov ecx, esi
mov edi, eax
mov ebx, edx
call fcn.0047eb86
mov edx, dword [edi + 0x14]
test edx, edx
je 0x48bd75
and bl, 1
mov ecx, dword [edi + 0xc]
mov byte [esp + 0x18], bl
mov ebx, dword [ebp + 8]
movss xmm0, dword [ebx + 0x98]
movss dword [esp + 0x30], xmm0
push 0x811f34
push 0
call fcn.0048bf69
pop ecx
pop edx
movss xmm0, dword [eax + 0x40]
movss xmm2, dword [eax + 0x48]
movss xmm4, dword [esp + 0x30]
movss xmm1, dword [eax + 0x44]
movss xmm3, dword [eax + 0x4c]
movss xmm5, dword [esp + 0xc]
lea ecx, [esp + 0x110]
mov edx, ebx
addss xmm4, xmm0
subss xmm2, xmm0
addss xmm5, xmm1
subss xmm3, xmm1
addss xmm2, xmm4
addss xmm3, xmm5
movss dword [esp + 0xa8], xmm4
movss dword [esp + 0xac], xmm5
movss dword [esp + 0xb0], xmm2
movss dword [esp + 0xb4], xmm3
push dword [esp + 0x1c]
lea eax, [esp + 0xac]
push eax
call fcn.004895f9
pop eax
pop ecx
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x24], edi
imul edi, dword [edi + 0x14], 0x60
add edi, ecx
xor ebx, ebx
xor eax, eax
inc ebx
test al, 1
je 0x48bb46
cmp ecx, edi
jne 0x48bb5e
jmp 0x48bc1e
mov eax, edi
xor edx, edx
sub eax, ecx
push 0x60
pop esi
div esi
cmp eax, ebx
jbe 0x48bc1e
imul eax, ebx, 0x60
add ecx, eax
movss xmm0, dword [ecx + 0x40]
movss xmm2, dword [ecx + 0x48]
movss xmm4, dword [esp + 0x30]
movss xmm1, dword [ecx + 0x44]
movss xmm3, dword [ecx + 0x4c]
movss xmm5, dword [esp + 0xc]
mov edx, dword [ebp + 8]
lea ebx, [esp + 0xa8]
lea esi, [ecx + 0x60]
mov ecx, ebx
addss xmm4, xmm0
subss xmm2, xmm0
addss xmm5, xmm1
subss xmm3, xmm1
addss xmm2, xmm4
addss xmm3, xmm5
movss dword [esp + 0x40], xmm4
movss dword [esp + 0x44], xmm5
movss dword [esp + 0x48], xmm2
movss dword [esp + 0x4c], xmm3
push dword [esp + 0x1c]
lea eax, [esp + 0x44]
push eax
call fcn.004895f9
pop eax
pop ecx
lea ecx, [esp + 0x110]
mov edx, ebx
call fcn.0048bf87
xor ebx, ebx
mov al, 1
mov ecx, esi
jmp 0x48bb39
movss xmm0, dword [0x646004]
cmp dword [esi], 2
movss dword [esp + 0x78], xmm0
jne 0x48bc10
movzx eax, byte [esi + 0xbd]
lea ecx, [eax - 2]
cmp ecx, 2
jae 0x48bc16
mov al, byte [esi + 0xbc]
jmp 0x48bc5b
xor eax, eax
xor ecx, ecx
jmp 0x48bc6f
test eax, eax
jne 0x48bc59
xor eax, eax
jmp 0x48bc5b
mov eax, dword [esp + 0x14]
lea edi, [eax + 0x10]
push 0x16
pop ecx
lea esi, [esp + 0x110]
rep movsd dword es:[edi], dword [esi]
movss xmm0, dword [esp + 0x30]
movss xmm1, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
mov dl, byte [esp + 0x18]
movss dword [eax + 8], xmm0
movss dword [eax + 0xc], xmm1
mov dword [eax], ecx
mov byte [eax + 4], dl
jmp 0x48bd66
mov al, 2
cmp byte [esp + 0x13], 2
mov ecx, esi
sbb ecx, 0
cmp byte [ecx + 0xba], 0
setne cl
mov edx, esi
lea esi, [esp + 0x74]
mov byte [esi + 0x2e], al
mov byte [esi + 0x2d], cl
push 0xd
pop ecx
lea ebx, [esp + 0xa8]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [edx + 0xe0]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047eb6d
mov eax, dword [edi + 0x6c8]
add edi, 0x6c8
mov edx, str.No_fonts_available_until_first_call_to_Context::run__
test eax, eax
cmove edi, eax
mov ecx, edi
push 0x81187c
call fcn.00481450
pop ecx
mov edx, dword [edi]
mov ecx, ebx
call fcn.0048c445
and dl, 1
mov ecx, esi
mov ebx, eax
mov byte [esp + 0xc], dl
call fcn.0047eb86
lea ecx, [ebx + 8]
call fcn.004b0ec3
mov edx, dword [ebp + 8]
lea esi, [esp + 0xa8]
mov ecx, esi
push dword [esp + 0x1c]
call fcn.0047e18e
pop eax
movss xmm2, dword [esi]
movss xmm0, dword [esi + 4]
movss xmm1, dword [esi + 8]
lea esi, [esp + 0xb8]
push 0x16
pop ecx
lea edi, [esp + 0x1c0]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 8]
movzx eax, byte [eax + 0x36]
test eax, eax
je 0x48bd3d
cmp eax, 2
je 0x48bd40
addss xmm2, xmm1
mov edi, dword [esp + 0x14]
mov al, byte [esp + 0xc]
mulss xmm2, dword [0x6460f0]
movaps xmm1, xmm2
jmp 0x48bd48
movaps xmm1, xmm2
mov edi, dword [esp + 0x14]
mov al, byte [esp + 0xc]
movss dword [edi + 8], xmm1
movss dword [edi + 0xc], xmm0
mov dword [edi], ebx
mov byte [edi + 4], al
add edi, 0x10
push 0x16
pop ecx
lea esi, [esp + 0x1c0]
rep movsd dword es:[edi], dword [esi]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.0043aad0
ud2
lea ecx, [esp + 0xa8]
mov edx, 0x811f24
mov dword [ecx], str.Galleys_are_never_empty
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.dest_is_out_of_bounds
and dword [ecx + 0xc], 0
call fcn.0063cbf0
ud2