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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x24c0
call fcn.1033e170
mov eax, dword [0x105be7d0]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
mov dword [ebp - 0x2478], 0
mov eax, edx
mov dword [ebp - 0x2474], 0
mov dword [ebp - 0x24a0], 0
mov ebx, dword [ecx + 0x4c]
push esi
mov dword [ebp - 0x2484], eax
mov dword [ebp - 0x24b0], ecx
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x249c], eax
mov eax, dword [ebp + 8]
push edi
mov dword [ebp - 0x24ac], eax
mov dword [ebp - 0x24b4], ebx
call fcn.101df6d0
test eax, eax
je 0x1023c063
mov edx, dword [ebx + 0xc]
push 0
mov eax, dword [edx]
mov ecx, eax
shl ecx, 4
add edx, 8
add eax, ecx
lea eax, [edx + eax*4]
push eax
call sub.MSVCR120.dll__setjmp3
mov ebx, dword [ebp - 0x24b4]
add esp, 8
mov dword [ebp - 0x2470], ebx
mov esi, dword [ebx + 0xc]
mov edx, dword [esi]
shl edx, 4
add edx, dword [esi]
mov dword [esi + edx*4 + 4], eax
test eax, eax
jne 0x1023c057
mov ecx, ebx
call fcn.1023a070
mov dword [ebp - 0x2474], eax
mov edx, str.FontDescriptor
mov eax, dword [ebp - 0x249c]
mov ecx, eax
mov dword [ebp - 0x2484], eax
call fcn.101dd730
mov edi, dword [ebp - 0x2470]
mov ebx, eax
mov dword [ebp - 0x24b8], ebx
mov ecx, dword [edi + 0xc]
call fcn.101df6d0
test eax, eax
je 0x1023a4e5
mov edx, dword [edi + 0xc]
push 0
mov ecx, dword [edx]
shl ecx, 4
add ecx, dword [edx]
add edx, 8
lea eax, [edx + ecx*4]
push eax
call sub.MSVCR120.dll__setjmp3
mov ecx, dword [ebp - 0x24b4]
add esp, 8
mov ebx, dword [ebp - 0x24b8]
mov dword [ebp - 0x2470], ecx
mov esi, dword [ecx + 0xc]
mov edx, dword [esi]
shl edx, 4
add edx, dword [esi]
test eax, eax
mov dword [esi + edx*4 + 4], eax
mov eax, dword [ebp - 0x249c]
mov dword [ebp - 0x2484], eax
jne 0x1023a4e5
test ebx, ebx
je 0x1023a4c4
mov edx, str.Encoding
mov ecx, eax
call fcn.101dd730
mov edi, dword [ebp - 0x24ac]
neg eax
mov edx, dword [ebp - 0x24b0]
mov ecx, dword [ebp - 0x2474]
sbb eax, eax
neg eax
push eax
push 0
push edi
push 0
push ebx
call fcn.1023d9c0
add esp, 0x14
jmp 0x1023a4eb
mov edi, dword [ebp - 0x24ac]
mov esi, dword [ebp - 0x2470]
mov ecx, esi
mov edx, dword [ebp - 0x2474]
push 0
push edi
call fcn.10239760
add esp, 8
jmp 0x1023a4f1
mov edi, dword [ebp - 0x24ac]
mov esi, dword [ebp - 0x2470]
mov esi, dword [esi + 0xc]
mov edx, dword [esi]
mov eax, edx
shl eax, 4
add eax, edx
mov ecx, dword [esi + eax*4 + 4]
lea eax, [edx - 1]
mov dword [esi], eax
cmp ecx, 1
jle 0x1023a5cd
mov eax, dword [ebp - 0x2474]
test byte [eax + 0x10], 4
je 0x1023c163
mov ecx, dword [ebp - 0x2484]
call fcn.101dbcf0
push eax
call fcn.101dbcd0
mov ebx, dword [ebp - 0x2470]
push eax
push edi
push str.using_bullet_substitute_font_for__s___d__d_R_
push 0x1fa
push str...mupdf_sourcepdfpdf_font.c
push ebx
call fcn.101df520
mov esi, dword [ebp - 0x2474]
add esp, 0x1c
xor edi, edi
test esi, esi
je 0x1023a598
mov eax, dword [ebx + 4]
push edi
push dword [eax]
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
add esp, 8
test eax, eax
js 0x1023a57b
dec eax
mov dword [esi], eax
mov eax, 1
cmove edi, eax
mov eax, dword [ebx + 4]
push 0
push dword [eax]
mov eax, dword [eax + 8]
call eax
add esp, 8
test edi, edi
je 0x1023a598
mov eax, dword [esi + 4]
push esi
push ebx
call eax
add esp, 8
mov esi, dword [ebp - 0x2470]
mov ecx, esi
mov dword [ebp - 0x2474], 0
call fcn.1023a1a0
mov dword [ebp - 0x2474], eax
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 0x24]
mov ecx, ebx
mov dword [ebp - 0x24a8], ebx
call fcn.102394e0
jmp 0x1023bb58
test ebx, ebx
je 0x1023a81f
mov edx, str.FontName
mov ecx, ebx
call fcn.101dd730
mov ecx, eax
test ecx, ecx
je 0x1023a81f
cmp byte [ecx + 4], 0x72
jne 0x1023a5f8
call fcn.101e8f10
mov ecx, eax
test ecx, ecx
je 0x1023a81f
mov esi, dword [ebp - 0x2484]
xor eax, eax
cmp byte [ecx + 4], 0x73
sete al
test eax, eax
je 0x1023a825
mov edx, str.ToUnicode
mov ecx, esi
call fcn.101dd730
test eax, eax
jne 0x1023a825
mov edx, str.Encoding
mov ecx, esi
call fcn.101dd730
test eax, eax
je 0x1023a657
cmp byte [eax + 4], 0x72
jne 0x1023a648
mov ecx, eax
call fcn.101e8f10
test eax, eax
je 0x1023a657
cmp byte [eax + 4], 0x6e
jne 0x1023a657
add eax, 0x10
jmp 0x1023a65c
mov eax, 0x10559f1c
mov ecx, str.WinAnsiEncoding
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1023a681
test dl, dl
je 0x1023a67d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1023a681
add eax, 2
add ecx, 2
test dl, dl
jne 0x1023a661
xor eax, eax
jmp 0x1023a686
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1023a825
mov edx, str.Flags
mov ecx, ebx
call fcn.101dd730
mov ecx, eax
call fcn.101dbbc0
cmp eax, 4
jne 0x1023a825
mov dword [ebp - 0x2040], 0x1056b07c
xor esi, esi
mov dword [ebp - 0x203c], str.SimSun_Regular
mov eax, 0x1056b07c
mov dword [ebp - 0x2038], 0x1056ae3c
mov dword [ebp - 0x2034], str.SimHei_Regular
mov dword [ebp - 0x2030], 0x1056ae54
mov dword [ebp - 0x202c], str.SimKai_Regular
mov dword [ebp - 0x2028], 0x1056ae70
mov dword [ebp - 0x2024], str.SimFang_Regular
mov dword [ebp - 0x2020], 0x1056ae8c
mov dword [ebp - 0x201c], str.SimLi_Regular
mov dword [ebp - 0x2018], 0
nop
mov ecx, edi
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x1023a742
test dl, dl
je 0x1023a73e
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x1023a742
add ecx, 2
add eax, 2
test dl, dl
jne 0x1023a722
xor eax, eax
jmp 0x1023a747
sbb eax, eax
or eax, 1
test eax, eax
je 0x1023a759
mov eax, dword [ebp + esi*4 - 0x2038]
add esi, 2
test eax, eax
jne 0x1023a720
cmp dword [ebp + esi*4 - 0x2040], 0
je 0x1023a81f
mov edi, dword [ebp - 0x2470]
push str.workaround_for_S22PDF_lying_about_chinese_font_encodings
push 0x217
push str...mupdf_sourcepdfpdf_font.c
push edi
call fcn.101df520
mov edx, dword [ebp - 0x2474]
mov ecx, edi
call fcn.101d8eb0
mov ecx, edi
mov dword [ebp - 0x2474], 0
call fcn.1023a070
mov edx, dword [ebp - 0x24b0]
mov ecx, eax
push 1
push 0
push dword [ebp + esi*4 - 0x203c]
mov dword [ebp - 0x2474], eax
push str.Adobe_GB1
push ebx
call fcn.1023d9c0
add esp, 0x24
mov esi, edi
mov edx, 0x1056ae94
mov ecx, esi
call fcn.10275d90
mov ecx, dword [ebp - 0x2474]
mov edx, 0x1056aefc
mov dword [ecx + 0x2c], eax
mov ecx, esi
call fcn.10275d90
mov ecx, dword [ebp - 0x2474]
mov edx, 0x1056aefc
mov dword [ecx + 0x3c], eax
mov ecx, esi
call fcn.10275d90
mov ecx, dword [ebp - 0x2474]
mov dword [ecx + 0x30], eax
mov eax, dword [ebp - 0x2474]
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 0x24]
mov dword [ebp - 0x24a8], ebx
jmp 0x1023bb58
mov esi, dword [ebp - 0x2484]
mov eax, dword [ebp - 0x2474]
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 0x24]
mov ecx, ebx
mov dword [ebp - 0x24a4], ebx
mov dword [ebp - 0x24a8], ebx
call fcn.102394e0
mov ecx, dword [ebp - 0x2474]
mov dword [ebp - 0x2490], eax
mov eax, dword [ecx + 0x10]
and eax, 4
cmp dword [ebx + 0x24], 0
mov dword [ebp - 0x248c], eax
jle 0x1023a869
mov ecx, dword [ebx + 0x28]
mov edi, dword [ecx]
jmp 0x1023a86b
xor edi, edi
mov edx, str.Encoding
mov dword [ebp - 0x247c], edi
mov ecx, esi
call fcn.101dd730
mov esi, eax
xor eax, eax
mov dword [ebp - 0x2480], eax
cmp dword [ebx + 0x24], eax
jle 0x1023aa38
mov ecx, dword [ebx + 0x28]
mov edi, dword [ecx + eax*4]
mov ecx, dword [ebp - 0x2490]
cmp ecx, 1
jne 0x1023a8bb
mov eax, dword [ebp - 0x247c]
cmp word [edi + 8], 7
cmove eax, edi
mov dword [ebp - 0x247c], eax
mov eax, dword [ebp - 0x2480]
cmp ecx, 2
jne 0x1023aa22
cmp word [edi + 8], 1
jne 0x1023a95f
cmp word [edi + 0xa], 0
jne 0x1023a95f
mov eax, esi
test esi, esi
je 0x1023a8ed
cmp byte [esi + 4], 0x72
jne 0x1023a8ed
mov ecx, esi
call fcn.101e8f10
test eax, eax
je 0x1023a959
xor ecx, ecx
cmp byte [eax + 4], 0x6e
sete cl
test ecx, ecx
je 0x1023a959
mov eax, esi
test esi, esi
je 0x1023a911
cmp byte [esi + 4], 0x72
jne 0x1023a911
mov ecx, esi
call fcn.101e8f10
test eax, eax
je 0x1023a920
cmp byte [eax + 4], 0x6e
jne 0x1023a920
add eax, 0x10
jmp 0x1023a925
mov eax, 0x10559f1c
mov ecx, str.WinAnsiEncoding
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1023a950
test dl, dl
je 0x1023a94c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1023a950
add eax, 2
add ecx, 2
test dl, dl
jne 0x1023a930
xor eax, eax
jmp 0x1023a955
sbb eax, eax
or eax, 1
test eax, eax
je 0x1023a95f
mov dword [ebp - 0x247c], edi
cmp word [edi + 8], 3
jne 0x1023a9f8
cmp word [edi + 0xa], 1
jne 0x1023a9f8
mov eax, esi
test esi, esi
je 0x1023a988
cmp byte [esi + 4], 0x72
jne 0x1023a988
mov ecx, esi
call fcn.101e8f10
test eax, eax
je 0x1023a9ee
xor ecx, ecx
cmp byte [eax + 4], 0x6e
sete cl
test ecx, ecx
je 0x1023a9ee
mov eax, esi
test esi, esi
je 0x1023a9ac
cmp byte [esi + 4], 0x72
jne 0x1023a9ac
mov ecx, esi
call fcn.101e8f10
test eax, eax
je 0x1023a9bb
cmp byte [eax + 4], 0x6e
jne 0x1023a9bb
add eax, 0x10
jmp 0x1023a9c0
mov eax, 0x10559f1c
mov ecx, str.MacRomanEncoding
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1023a9e5
test dl, dl
je 0x1023a9e1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1023a9e5
add eax, 2
add ecx, 2
test dl, dl
jne 0x1023a9c5
xor eax, eax
jmp 0x1023a9ea
sbb eax, eax
or eax, 1
test eax, eax
je 0x1023a9f8
mov eax, edi
mov dword [ebp - 0x247c], eax
jmp 0x1023a9fe
mov eax, dword [ebp - 0x247c]
cmp dword [ebp - 0x248c], 0
je 0x1023aa1c
cmp word [edi + 8], 3
jne 0x1023aa1c
cmp word [edi + 0xa], 0
cmove eax, edi
mov dword [ebp - 0x247c], eax
mov eax, dword [ebp - 0x2480]
inc eax
mov dword [ebp - 0x2480], eax
cmp eax, dword [ebx + 0x24]
jl 0x1023a890
mov edi, dword [ebp - 0x247c]
test edi, edi
je 0x1023aa8e
mov edx, edi
mov ecx, ebx
call fcn.10236200
test eax, eax
je 0x1023aaab
cmp dword [str.no_error], 0
mov ecx, 0x1036b610
je 0x1023aa64
cmp dword [ecx], eax
je 0x1023aa89
add ecx, 8
cmp dword [ecx + 4], 0
jne 0x1023aa57
mov eax, str.Unknown_error
push eax
push str.freetype_could_not_set_cmap:__s
push 0x24f
push str...mupdf_sourcepdfpdf_font.c
push dword [ebp - 0x2470]
call fcn.101df520
add esp, 0x14
jmp 0x1023aaab
mov eax, dword [ecx + 4]
jmp 0x1023aa69
push str.freetype_could_not_find_any_cmaps
push 0x252
push str...mupdf_sourcepdfpdf_font.c
push dword [ebp - 0x2470]
call fcn.101df520
add esp, 0x10
mov ecx, dword [ebp - 0x2470]
mov edx, 0x200
call fcn.101f3100
test eax, eax
je 0x1023c171
mov dword [ebp - 0x2478], eax
lea edi, [ebp - 0x2444]
mov eax, dword [ebp - 0x2474]
xor esi, esi
mov ecx, 0x100
add dword [eax + 8], 0x200
xor eax, eax
rep stosd dword es:[edi], eax
jmp 0x1023aaf0
mov eax, dword [ebp - 0x2478]
xor ecx, ecx
mov word [esi + eax], cx
add esi, 2
cmp esi, 0x200
jl 0x1023aaf0
mov ecx, dword [ebp - 0x2484]
mov edx, str.Encoding
call fcn.101dd730
mov edi, eax
mov dword [ebp - 0x2494], edi
mov dword [ebp - 0x24bc], edi
test edi, edi
je 0x1023ae08
cmp byte [edi + 4], 0x72
jne 0x1023ab3a
mov ecx, edi
call fcn.101e8f10
test eax, eax
je 0x1023ab77
xor ecx, ecx
cmp byte [eax + 4], 0x6e
sete cl
test ecx, ecx
je 0x1023ab77
cmp byte [edi + 4], 0x72
mov eax, edi
jne 0x1023ab5a
mov ecx, edi
call fcn.101e8f10
test eax, eax
je 0x1023ab67
cmp byte [eax + 4], 0x6e
lea edx, [eax + 0x10]
je 0x1023ab6c
mov edx, 0x10559f1c
lea ecx, [ebp - 0x2444]
call fcn.10246260
cmp byte [edi + 4], 0x72
mov eax, edi
jne 0x1023ab86
mov ecx, edi
call fcn.101e8f10
test eax, eax
je 0x1023ae2d
xor ecx, ecx
cmp byte [eax + 4], 0x64
sete cl
test ecx, ecx
je 0x1023ae2d
mov edx, str.BaseEncoding
mov ecx, edi
call fcn.101dd730
mov esi, eax
test esi, esi
je 0x1023abbe
cmp byte [esi + 4], 0x72
jne 0x1023abbe
mov ecx, esi
call fcn.101e8f10
test eax, eax
je 0x1023abf6
xor ecx, ecx
cmp byte [eax + 4], 0x6e
sete cl
test ecx, ecx
je 0x1023abf6
test esi, esi
je 0x1023abef
cmp byte [esi + 4], 0x72
jne 0x1023abe2
mov ecx, esi
call fcn.101e8f10
mov esi, eax
test esi, esi
je 0x1023abef
cmp byte [esi + 4], 0x6e
lea edx, [esi + 0x10]
je 0x1023ac62
mov edx, 0x10559f1c
jmp 0x1023ac62
mov eax, dword [ebp - 0x2474]
mov ecx, dword [ebp - 0x248c]
cmp dword [eax + 0x78], 0
jne 0x1023ac0c
test ecx, ecx
je 0x1023ac5d
cmp dword [eax + 0x2c], 0
jne 0x1023ac6d
test ecx, ecx
jne 0x1023ac6d
mov edx, dword [ebx + 0x60]
mov eax, dword [edx]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x1023ac2f
push str.xf86_driver_name
push edx
call eax
add esp, 8
mov ecx, eax
mov eax, 0x1056ac20
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x1023ac54
test dl, dl
je 0x1023ac50
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x1023ac54
add ecx, 2
add eax, 2
test dl, dl
jne 0x1023ac34
xor eax, eax
jmp 0x1023ac59
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1023ac6d
mov edx, str.StandardEncoding
lea ecx, [ebp - 0x2444]
call fcn.10246260
mov edx, str.Differences
mov ecx, edi
call fcn.101dd730
mov esi, eax
mov dword [ebp - 0x247c], esi
test esi, esi
je 0x1023ac92
cmp byte [esi + 4], 0x72
jne 0x1023ac92
mov ecx, esi
call fcn.101e8f10
test eax, eax
je 0x1023ae2d
xor ecx, ecx
cmp byte [eax + 4], 0x61
sete cl
test ecx, ecx
je 0x1023ae2d
mov eax, esi
test esi, esi
je 0x1023acbe
cmp byte [esi + 4], 0x72
jne 0x1023acbe
mov ecx, esi
call fcn.101e8f10
test eax, eax
je 0x1023accd
cmp byte [eax + 4], 0x61
jne 0x1023accd
mov eax, dword [eax + 0x10]
jmp 0x1023accf
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x2480], eax
xor edi, edi
mov dword [ebp - 0x2488], ecx
test eax, eax
jle 0x1023ae2d
mov ebx, dword [ebp - 0x247c]
lea ecx, [ecx]
mov eax, ebx
test ebx, ebx
je 0x1023ad09
cmp byte [ebx + 4], 0x72
jne 0x1023ad09
mov ecx, ebx
call fcn.101e8f10
mov ecx, dword [ebp - 0x2488]
test eax, eax
je 0x1023ad24
cmp byte [eax + 4], 0x61
jne 0x1023ad24
test ecx, ecx
js 0x1023ad24
cmp ecx, dword [eax + 0x10]
jge 0x1023ad24
mov eax, dword [eax + 0x18]
mov esi, dword [eax + ecx*4]
jmp 0x1023ad26
xor esi, esi
mov eax, esi
test esi, esi
je 0x1023ad39
cmp byte [esi + 4], 0x72
jne 0x1023ad39
mov ecx, esi
call fcn.101e8f10
test eax, eax
je 0x1023ad88
xor ecx, ecx
cmp byte [eax + 4], 0x69
sete cl
test ecx, ecx
je 0x1023ad88
mov eax, esi
test esi, esi
je 0x1023ad5d
cmp byte [esi + 4], 0x72
jne 0x1023ad5d
mov ecx, esi
call fcn.101e8f10
test eax, eax
je 0x1023ad86
mov cl, byte [eax + 4]
cmp cl, 0x69
jne 0x1023ad6e
mov edi, dword [eax + 0x10]
jmp 0x1023ad88
cmp cl, 0x66
jne 0x1023ad86
movss xmm0, dword [eax + 0x10]
addss xmm0, dword [0x1058891c]
cvttss2si edi, xmm0
jmp 0x1023ad88
xor edi, edi
mov eax, esi
test esi, esi
je 0x1023ad9b
cmp byte [esi + 4], 0x72
jne 0x1023ad9b
mov ecx, esi
call fcn.101e8f10
test eax, eax
je 0x1023ade7
xor ecx, ecx
cmp byte [eax + 4], 0x6e
sete cl
test ecx, ecx
je 0x1023ade7
test edi, edi
js 0x1023ade7
cmp edi, 0x100
jae 0x1023ade7
test esi, esi
je 0x1023adda
cmp byte [esi + 4], 0x72
jne 0x1023adcb
mov ecx, esi
call fcn.101e8f10
mov esi, eax
test esi, esi
je 0x1023adda
cmp byte [esi + 4], 0x6e
jne 0x1023adda
add esi, 0x10
jmp 0x1023addf
mov esi, 0x10559f1c
mov dword [ebp + edi*4 - 0x2444], esi
inc edi
mov ecx, dword [ebp - 0x2488]
inc ecx
mov dword [ebp - 0x2488], ecx
cmp ecx, dword [ebp - 0x2480]
jl 0x1023acf0
mov ebx, dword [ebp - 0x24a4]
jmp 0x1023ae2d
mov eax, dword [ebp - 0x2474]
cmp dword [eax + 0x78], 0
jne 0x1023ae2d
cmp dword [ebp - 0x248c], 0
jne 0x1023ae2d
mov edx, str.StandardEncoding
lea ecx, [ebp - 0x2444]
call fcn.10246260
xor esi, esi
nop
mov edx, dword [ebx + 0x5c]
xor ecx, ecx
test edx, edx
je 0x1023ae48
mov eax, dword [edx + 0xc]
push esi
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
test ecx, ecx
jne 0x1023ae8e
mov edx, dword [ebx + 0x5c]
lea edi, [esi + 0xf000]
test edx, edx
je 0x1023ae68
mov eax, dword [edx + 0xc]
push edi
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
test ecx, ecx
jne 0x1023ae8e
cmp esi, 0x22ef
jne 0x1023ae8e
mov edx, dword [ebx + 0x5c]
test edx, edx
je 0x1023ae8e
mov eax, dword [edx + 0xc]
push 0x2026
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
mov eax, dword [ebp - 0x2478]
mov word [eax + esi*2], cx
inc esi
cmp esi, 0x100
jl 0x1023ae30
mov eax, dword [ebp - 0x2470]
push 2
mov eax, dword [eax + 4]
push dword [eax]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x2484]
add esp, 8
mov edx, str.Subtype
mov dword [ebp - 0x24a0], 1
call fcn.101dd730
test eax, eax
je 0x1023aeee
cmp byte [eax + 4], 0x72
jne 0x1023aee1
mov ecx, eax
call fcn.101e8f10
test eax, eax
je 0x1023aeee
cmp byte [eax + 4], 0x6e
lea esi, [eax + 0x10]
je 0x1023aef3
mov esi, 0x10559f1c
mov ecx, str.Type1
mov eax, esi
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1023af20
test dl, dl
je 0x1023af1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1023af20
add eax, 2
add ecx, 2
test dl, dl
jne 0x1023af00
xor eax, eax
jmp 0x1023af25
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1023af39
mov edx, 1
mov dword [ebp - 0x2490], edx
jmp 0x1023b047
mov ecx, str.MMType1
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1023af60
test dl, dl
je 0x1023af5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1023af60
add eax, 2
add ecx, 2
test dl, dl
jne 0x1023af40
xor eax, eax
jmp 0x1023af65
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1023af79
mov eax, 1
mov dword [ebp - 0x2490], eax
jmp 0x1023b047
mov ecx, str.TrueType
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1023afa0
test dl, dl
je 0x1023af9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1023afa0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1023af80
xor eax, eax
jmp 0x1023afa5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1023afb8
mov dword [ebp - 0x2490], 2
jmp 0x1023b2c9
mov ecx, str.CIDFontType0
mov eax, esi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1023afe0
test dl, dl
je 0x1023afdc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1023afe0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1023afc0
xor eax, eax
jmp 0x1023afe5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1023aff6
mov eax, 1
mov dword [ebp - 0x2490], eax
jmp 0x1023b047
mov eax, str.CIDFontType2
jmp 0x1023b000
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x1023b020
test cl, cl
je 0x1023b01c
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x1023b020
add esi, 2
add eax, 2
test cl, cl
jne 0x1023b000
xor eax, eax
jmp 0x1023b025
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1023b038
mov dword [ebp - 0x2490], 2
jmp 0x1023b2c9
mov edx, dword [ebp - 0x2490]
cmp edx, 1
jne 0x1023b29b
xor ecx, ecx
lea esi, [ebp - 0x2444]
mov dword [ebp - 0x2480], ecx
mov dword [ebp - 0x247c], esi
jmp 0x1023b060
mov edi, dword [esi]
test edi, edi
je 0x1023b277
xor ecx, ecx
test dword [ebx + 8], 0x200
mov dword [ebp - 0x24a4], ecx
je 0x1023b0d7
mov eax, dword [ebx + 0x80]
mov esi, dword [eax + 0x24]
cmp esi, 0xfffffffe
je 0x1023b0d1
test esi, esi
jne 0x1023b0c1
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x1023b0a6
push str.glyph_dict
push ecx
call eax
add esp, 8
mov esi, eax
mov ecx, dword [ebx + 0x80]
test esi, esi
mov edx, 0xfffffffe
cmovne edx, esi
mov dword [ecx + 0x24], edx
mov ecx, dword [ebp - 0x24a4]
je 0x1023b0d1
mov eax, dword [esi + 4]
test eax, eax
je 0x1023b0d1
push edi
push ebx
call eax
add esp, 8
mov ecx, eax
mov esi, dword [ebp - 0x247c]
mov eax, dword [ebp - 0x2480]
mov edx, dword [ebp - 0x2478]
mov word [eax + edx], cx
mov eax, dword [ebp - 0x2478]
mov ecx, dword [ebp - 0x2480]
cmp word [ecx + eax], 0
jne 0x1023b277
mov ecx, edi
call fcn.10246370
mov ecx, eax
mov dword [ebp - 0x2498], eax
call fcn.10246560
mov esi, eax
mov dword [ebp - 0x2488], esi
mov edi, dword [esi]
test edi, edi
je 0x1023b1d2
jmp 0x1023b130
xor edx, edx
test dword [ebx + 8], 0x200
mov dword [ebp - 0x24a4], edx
je 0x1023b1a1
test edi, edi
je 0x1023b1a1
mov eax, dword [ebx + 0x80]
mov esi, dword [eax + 0x24]
cmp esi, 0xfffffffe
je 0x1023b19b
test esi, esi
jne 0x1023b18b
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x1023b170
push str.glyph_dict
push ecx
call eax
add esp, 8
mov esi, eax
mov ecx, dword [ebx + 0x80]
test esi, esi
mov edx, 0xfffffffe
cmovne edx, esi
mov dword [ecx + 0x24], edx
mov edx, dword [ebp - 0x24a4]
je 0x1023b19b
mov eax, dword [esi + 4]
test eax, eax
je 0x1023b19b
push edi
push ebx
call eax
add esp, 8
mov edx, eax
mov esi, dword [ebp - 0x2488]
mov edi, dword [ebp - 0x2480]
mov ecx, dword [ebp - 0x2478]
mov word [edi + ecx], dx
mov eax, dword [ebp - 0x2478]
cmp word [edi + eax], 0
jne 0x1023b1d2
mov edi, dword [esi + 4]
add esi, 4
mov dword [ebp - 0x2488], esi
test edi, edi
jne 0x1023b130
mov eax, dword [ebp - 0x2478]
mov ecx, dword [ebp - 0x2480]
cmp word [ecx + eax], 0
jne 0x1023b271
push dword [ebp - 0x2498]
lea eax, [ebp - 0x14]
push str.uni_04X
push eax
call dword [sym.imp.MSVCR120.dll_sprintf]
add esp, 0xc
xor edi, edi
test dword [ebx + 8], 0x200
je 0x1023b25f
mov eax, dword [ebx + 0x80]
mov esi, dword [eax + 0x24]
cmp esi, 0xfffffffe
je 0x1023b25f
test esi, esi
jne 0x1023b24c
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x1023b237
push str.glyph_dict
push ecx
call eax
add esp, 8
mov esi, eax
mov ecx, dword [ebx + 0x80]
test esi, esi
mov edx, 0xfffffffe
cmovne edx, esi
mov dword [ecx + 0x24], edx
je 0x1023b25f
mov eax, dword [esi + 4]
test eax, eax
je 0x1023b25f
lea ecx, [ebp - 0x14]
push ecx
push ebx
call eax
add esp, 8
mov edi, eax
mov ecx, dword [ebp - 0x2478]
mov eax, dword [ebp - 0x2480]
mov word [eax + ecx], di
mov ecx, eax
mov esi, dword [ebp - 0x247c]
add ecx, 2
add esi, 4
mov dword [ebp - 0x247c], esi
mov dword [ebp - 0x2480], ecx
cmp ecx, 0x200
jl 0x1023b060
mov edx, dword [ebp - 0x2490]
cmp edx, 2
je 0x1023b2c9
mov ecx, ebx
call fcn.102394e0
cmp eax, 2
jne 0x1023b86d
mov eax, dword [ebp - 0x2474]
cmp dword [eax + 0x78], 0
je 0x1023b2c9
test dword [ebx + 8], 0x200
jne 0x1023b86d
mov ecx, dword [ebp - 0x248c]
test ecx, ecx
jne 0x1023b6b4
mov eax, dword [ebx + 0x5c]
test eax, eax
je 0x1023b474
cmp word [eax + 8], 3
jne 0x1023b474
xor esi, esi
nop
mov eax, dword [ebp + esi*4 - 0x2444]
test eax, eax
je 0x1023b462
mov ecx, eax
call fcn.10246370
mov edi, eax
test edi, edi
jne 0x1023b385
xor edx, edx
test dword [ebx + 8], 0x200
mov dword [ebp - 0x2498], edx
je 0x1023b379
mov eax, dword [ebx + 0x80]
mov edi, dword [eax + 0x24]
cmp edi, 0xfffffffe
je 0x1023b379
test edi, edi
jne 0x1023b363
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x1023b348
push str.glyph_dict
push ecx
call eax
add esp, 8
mov edi, eax
mov ecx, dword [ebx + 0x80]
test edi, edi
mov edx, 0xfffffffe
cmovne edx, edi
mov dword [ecx + 0x24], edx
mov edx, dword [ebp - 0x2498]
je 0x1023b379
mov eax, dword [edi + 4]
test eax, eax
je 0x1023b379
push dword [ebp + esi*4 - 0x2444]
push ebx
call eax
add esp, 8
mov edx, eax
mov ecx, dword [ebp - 0x2478]
mov word [ecx + esi*2], dx
jmp 0x1023b3ed
mov edx, dword [ebx + 0x5c]
xor ecx, ecx
test edx, edx
je 0x1023b39d
mov eax, dword [edx + 0xc]
push edi
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
test ecx, ecx
jne 0x1023b3e3
mov edx, dword [ebx + 0x5c]
test edx, edx
je 0x1023b3bd
mov eax, dword [edx + 0xc]
lea ecx, [edi + 0xf000]
push ecx
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
test ecx, ecx
jne 0x1023b3e3
cmp edi, 0x22ef
jne 0x1023b3e3
mov edx, dword [ebx + 0x5c]
test edx, edx
je 0x1023b3e3
mov eax, dword [edx + 0xc]
push 0x2026
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
mov eax, dword [ebp - 0x2478]
mov word [eax + esi*2], cx
mov eax, dword [ebp - 0x2478]
cmp word [eax + esi*2], 0
jne 0x1023b462
mov edx, dword [ebx + 0x5c]
xor ecx, ecx
test edx, edx
je 0x1023b412
mov eax, dword [edx + 0xc]
push esi
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
test ecx, ecx
jne 0x1023b458
mov edx, dword [ebx + 0x5c]
lea edi, [esi + 0xf000]
test edx, edx
je 0x1023b432
mov eax, dword [edx + 0xc]
push edi
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
test ecx, ecx
jne 0x1023b458
cmp esi, 0x22ef
jne 0x1023b458
mov edx, dword [ebx + 0x5c]
test edx, edx
je 0x1023b458
mov eax, dword [edx + 0xc]
push 0x2026
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
mov eax, dword [ebp - 0x2478]
mov word [eax + esi*2], cx
inc esi
cmp esi, 0x100
jl 0x1023b2f0
jmp 0x1023b86d
test ecx, ecx
jne 0x1023b6b4
mov eax, dword [ebx + 0x5c]
test eax, eax
je 0x1023b6b4
cmp word [eax + 8], 1
jne 0x1023b6b4
mov esi, dword [ebp - 0x2494]
mov eax, esi
test esi, esi
je 0x1023b4ab
cmp byte [esi + 4], 0x72
jne 0x1023b4ab
mov ecx, esi
call fcn.101e8f10
test eax, eax
je 0x1023b52e
xor ecx, ecx
cmp byte [eax + 4], 0x6e
sete cl
test ecx, ecx
je 0x1023b52e
test esi, esi
je 0x1023b4dc
cmp byte [esi + 4], 0x72
jne 0x1023b4cf
mov ecx, esi
call fcn.101e8f10
mov esi, eax
test esi, esi
je 0x1023b4dc
cmp byte [esi + 4], 0x6e
lea eax, [esi + 0x10]
je 0x1023b4e1
mov eax, 0x10559f1c
mov ecx, str.MacExpertEncoding
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1023b506
test dl, dl
je 0x1023b502
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1023b506
add eax, 2
add ecx, 2
test dl, dl
jne 0x1023b4e6
xor eax, eax
jmp 0x1023b50b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1023b52e
test dword [ebx + 8], 0x200
je 0x1023b86d
mov ecx, 0x100
lea edi, [ebp - 0x2444]
rep stosd dword es:[edi], eax
jmp 0x1023b86d
xor esi, esi
mov eax, dword [ebp + esi*4 - 0x2444]
test eax, eax
je 0x1023b6a2
mov ecx, eax
call fcn.10239700
mov edi, eax
test edi, edi
jg 0x1023b5c5
xor edx, edx
test dword [ebx + 8], 0x200
mov dword [ebp - 0x2494], edx
je 0x1023b5b9
mov eax, dword [ebx + 0x80]
mov edi, dword [eax + 0x24]
cmp edi, 0xfffffffe
je 0x1023b5b9
test edi, edi
jne 0x1023b5a3
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x1023b588
push str.glyph_dict
push ecx
call eax
add esp, 8
mov edi, eax
mov ecx, dword [ebx + 0x80]
test edi, edi
mov edx, 0xfffffffe
cmovne edx, edi
mov dword [ecx + 0x24], edx
mov edx, dword [ebp - 0x2494]
je 0x1023b5b9
mov eax, dword [edi + 4]
test eax, eax
je 0x1023b5b9
push dword [ebp + esi*4 - 0x2444]
push ebx
call eax
add esp, 8
mov edx, eax
mov ecx, dword [ebp - 0x2478]
mov word [ecx + esi*2], dx
jmp 0x1023b62d
mov edx, dword [ebx + 0x5c]
xor ecx, ecx
test edx, edx
je 0x1023b5dd
mov eax, dword [edx + 0xc]
push edi
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
test ecx, ecx
jne 0x1023b623
mov edx, dword [ebx + 0x5c]
test edx, edx
je 0x1023b5fd
mov eax, dword [edx + 0xc]
lea ecx, [edi + 0xf000]
push ecx
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
test ecx, ecx
jne 0x1023b623
cmp edi, 0x22ef
jne 0x1023b623
mov edx, dword [ebx + 0x5c]
test edx, edx
je 0x1023b623
mov eax, dword [edx + 0xc]
push 0x2026
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
mov eax, dword [ebp - 0x2478]
mov word [eax + esi*2], cx
mov eax, dword [ebp - 0x2478]
cmp word [eax + esi*2], 0
jne 0x1023b6a2
mov edx, dword [ebx + 0x5c]
xor ecx, ecx
test edx, edx
je 0x1023b652
mov eax, dword [edx + 0xc]
push esi
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
test ecx, ecx
jne 0x1023b698
mov edx, dword [ebx + 0x5c]
lea edi, [esi + 0xf000]
test edx, edx
je 0x1023b672
mov eax, dword [edx + 0xc]
push edi
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
test ecx, ecx
jne 0x1023b698
cmp esi, 0x22ef
jne 0x1023b698
mov edx, dword [ebx + 0x5c]
test edx, edx
je 0x1023b698
mov eax, dword [edx + 0xc]
push 0x2026
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
mov eax, dword [ebp - 0x2478]
mov word [eax + esi*2], cx
inc esi
cmp esi, 0x100
jl 0x1023b530
jmp 0x1023b86d
mov eax, dword [ebx + 0x5c]
test eax, eax
je 0x1023b6c8
cmp dword [eax + 4], 0x73796d62
je 0x1023b86d
xor esi, esi
lea ebx, [ebx]
mov ecx, dword [ebp + esi*4 - 0x2444]
test ecx, ecx
je 0x1023b860
xor edx, edx
test dword [ebx + 8], 0x200
mov dword [ebp - 0x2494], edx
je 0x1023b74d
mov eax, dword [ebx + 0x80]
mov edi, dword [eax + 0x24]
cmp edi, 0xfffffffe
je 0x1023b74d
test edi, edi
jne 0x1023b73d
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x1023b71b
push str.glyph_dict
push ecx
call eax
add esp, 8
mov edi, eax
mov ecx, dword [ebx + 0x80]
test edi, edi
mov edx, 0xfffffffe
cmovne edx, edi
mov dword [ecx + 0x24], edx
mov edx, dword [ebp - 0x2494]
mov ecx, dword [ebp + esi*4 - 0x2444]
je 0x1023b74d
mov eax, dword [edi + 4]
test eax, eax
je 0x1023b74d
push ecx
push ebx
call eax
add esp, 8
mov edx, eax
mov ecx, dword [ebp - 0x2478]
mov word [ecx + esi*2], dx
mov eax, dword [ebp - 0x2478]
cmp word [eax + esi*2], 0
jne 0x1023b7cc
mov edx, dword [ebx + 0x5c]
xor ecx, ecx
test edx, edx
je 0x1023b77c
mov eax, dword [edx + 0xc]
push esi
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
test ecx, ecx
jne 0x1023b7c2
mov edx, dword [ebx + 0x5c]
lea edi, [esi + 0xf000]
test edx, edx
je 0x1023b79c
mov eax, dword [edx + 0xc]
push edi
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
test ecx, ecx
jne 0x1023b7c2
cmp esi, 0x22ef
jne 0x1023b7c2
mov edx, dword [ebx + 0x5c]
test edx, edx
je 0x1023b7c2
mov eax, dword [edx + 0xc]
push 0x2026
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
mov eax, dword [ebp - 0x2478]
mov word [eax + esi*2], cx
mov eax, dword [ebp - 0x2478]
cmp word [eax + esi*2], 0
jne 0x1023b860
cmp dword [ebp - 0x248c], 0
je 0x1023b860
mov ecx, dword [ebp + esi*4 - 0x2444]
call fcn.10246370
mov edi, eax
test edi, edi
je 0x1023b860
mov edx, dword [ebx + 0x5c]
xor ecx, ecx
test edx, edx
je 0x1023b810
mov eax, dword [edx + 0xc]
push edi
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
test ecx, ecx
jne 0x1023b856
mov edx, dword [ebx + 0x5c]
test edx, edx
je 0x1023b830
mov eax, dword [edx + 0xc]
lea ecx, [edi + 0xf000]
push ecx
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
test ecx, ecx
jne 0x1023b856
cmp edi, 0x22ef
jne 0x1023b856
mov edx, dword [ebx + 0x5c]
test edx, edx
je 0x1023b856
mov eax, dword [edx + 0xc]
push 0x2026
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 8
mov ecx, eax
mov eax, dword [ebp - 0x2478]
mov word [eax + esi*2], cx
inc esi
cmp esi, 0x100
jl 0x1023b6d0
lea ecx, [ebp - 0x2014]
xor edi, edi
mov dword [ebp - 0x2488], ecx
xor esi, esi
lea ecx, [ecx]
mov eax, dword [ebp - 0x2478]
movzx eax, word [eax + edi]
test ax, ax
je 0x1023b931
cmp dword [ebp + esi - 0x2444], 0
jne 0x1023b931
test dword [ebx + 8], 0x200
je 0x1023b924
push 0x20
push ecx
mov edx, eax
mov ecx, ebx
call fcn.102364c0
add esp, 8
test eax, eax
je 0x1023b90b
cmp dword [str.no_error], 0
mov ecx, 0x1036b610
je 0x1023b8dd
jmp 0x1023b8d0
cmp dword [ecx], eax
je 0x1023b91f
add ecx, 8
cmp dword [ecx + 4], 0
jne 0x1023b8d0
mov eax, str.Unknown_error
push eax
mov eax, dword [ebp - 0x2478]
movzx eax, word [eax + edi]
push eax
push str.freetype_get_glyph_name__gid__d_:__s
push 0x305
push str...mupdf_sourcepdfpdf_font.c
push dword [ebp - 0x2470]
call fcn.101df520
add esp, 0x18
mov ecx, dword [ebp - 0x2488]
cmp byte [ecx], 0
je 0x1023b931
mov dword [ebp + esi - 0x2444], ecx
jmp 0x1023b931
mov eax, dword [ecx + 4]
jmp 0x1023b8e2
mov eax, dword [esi + 0x10388310]
mov dword [ebp + esi - 0x2444], eax
add edi, 2
add ecx, 0x20
add esi, 4
mov dword [ebp - 0x2488], ecx
cmp edi, 0x200
jl 0x1023b880
cmp dword [ebp - 0x2490], 1
jne 0x1023b99e
cmp dword [ebp - 0x248c], 0
je 0x1023b99e
xor edi, edi
xor esi, esi
mov eax, dword [ebp - 0x2478]
cmp word [edi + eax], 0
je 0x1023b990
mov ecx, dword [ebp + esi - 0x2444]
test ecx, ecx
je 0x1023b990
call fcn.10246370
test eax, eax
jne 0x1023b990
mov eax, dword [esi + 0x10387f10]
mov dword [ebp + esi - 0x2444], eax
add edi, 2
add esi, 4
cmp edi, 0x200
jl 0x1023b962
mov esi, dword [ebp - 0x2470]
push 2
mov eax, dword [esi + 4]
push dword [eax]
mov eax, dword [eax + 8]
call eax
push 1
xor edx, edx
mov dword [ebp - 0x24a0], 0
mov ecx, esi
call fcn.10275be0
mov ecx, dword [ebp - 0x2474]
add esp, 0xc
mov dword [ecx + 0x2c], eax
mov edi, dword [ebp - 0x2474]
mov esi, dword [edi + 0x2c]
test esi, esi
jne 0x1023b9e2
xor eax, eax
jmp 0x1023ba1a
cmp dword [esi], 0
jge 0x1023b9eb
xor eax, eax
jmp 0x1023ba1a
mov edx, dword [esi + 0x48]
mov ecx, dword [ebp - 0x2470]
call fcn.10275760
mov edx, dword [esi + 0x244]
mov ecx, dword [esi + 0x238]
lea ecx, [ecx + edx*2]
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*2]
mov eax, dword [esi + 0x250]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
add dword [edi + 8], eax
mov eax, dword [ebp - 0x2474]
mov esi, dword [ebp - 0x2470]
mov dword [eax + 0x34], 0x100
mov eax, dword [ebp - 0x2474]
mov ecx, dword [ebp - 0x2478]
mov dword [eax + 0x38], ecx
mov ecx, dword [esi + 0xc]
call fcn.101df6d0
test eax, eax
je 0x1023bb0a
mov edx, dword [esi + 0xc]
push 0
mov ecx, dword [edx]
shl ecx, 4
add ecx, dword [edx]
add edx, 8
lea eax, [edx + ecx*4]
push eax
call sub.MSVCR120.dll__setjmp3
mov ecx, dword [ebp - 0x24b4]
add esp, 8
mov dword [ebp - 0x2470], ecx
mov esi, dword [ecx + 0xc]
mov edx, dword [esi]
shl edx, 4
add edx, dword [esi]
mov dword [esi + edx*4 + 4], eax
test eax, eax
jne 0x1023baf8
mov eax, dword [ebp - 0x2474]
mov edi, dword [ebp - 0x249c]
mov dword [ebp - 0x2484], edi
cmp dword [eax + 0x78], 0
jne 0x1023bacc
mov eax, dword [ebp - 0x24bc]
test eax, eax
je 0x1023bac8
cmp byte [eax + 4], 0x72
jne 0x1023bab7
mov ecx, eax
call fcn.101e8f10
test eax, eax
je 0x1023bac8
xor ecx, ecx
cmp byte [eax + 4], 0x64
sete cl
test ecx, ecx
jne 0x1023bacc
xor eax, eax
jmp 0x1023bad8
mov edx, str.ToUnicode
mov ecx, edi
call fcn.101dd730
mov edx, dword [ebp - 0x2474]
mov ecx, dword [ebp - 0x24b0]
push eax
lea eax, [ebp - 0x2444]
push 0
push eax
call fcn.10275460
add esp, 0xc
jmp 0x1023bb04
mov eax, dword [ebp - 0x249c]
mov dword [ebp - 0x2484], eax
mov ebx, dword [ebp - 0x24a8]
mov eax, dword [ebp - 0x2470]
mov esi, dword [eax + 0xc]
mov edx, dword [esi]
mov eax, edx
shl eax, 4
add eax, edx
mov ecx, dword [esi + eax*4 + 4]
lea eax, [edx - 1]
mov dword [esi], eax
mov esi, dword [ebp - 0x2470]
cmp ecx, 1
jle 0x1023bb58
mov ecx, dword [esi + 0xc]
cmp dword [ecx + 0x4404], 2
je 0x1023c191
push str.cannot_load_ToUnicode_CMap
push 0x329
push str...mupdf_sourcepdfpdf_font.c
push esi
call fcn.101df520
add esp, 0x10
mov ecx, dword [ebp - 0x2474]
mov edx, str.Widths
cvttss2si eax, dword [ecx + 0x28]
mov dword [ecx + 0x58], eax
mov ecx, dword [ebp - 0x2484]
call fcn.101dd730
mov edi, eax
mov dword [ebp - 0x2480], edi
test edi, edi
je 0x1023be77
mov ecx, dword [ebp - 0x2484]
mov edx, str.FirstChar
call fcn.101dd730
test eax, eax
je 0x1023bbd0
cmp byte [eax + 4], 0x72
jne 0x1023bba7
mov ecx, eax
call fcn.101e8f10
test eax, eax
je 0x1023bbd0
mov cl, byte [eax + 4]
cmp cl, 0x69
jne 0x1023bbb8
mov esi, dword [eax + 0x10]
jmp 0x1023bbd2
cmp cl, 0x66
jne 0x1023bbd0
movss xmm0, dword [eax + 0x10]
addss xmm0, dword [0x1058891c]
cvttss2si esi, xmm0
jmp 0x1023bbd2
xor esi, esi
mov ecx, dword [ebp - 0x2484]
mov edx, str.LastChar
mov dword [ebp - 0x248c], esi
call fcn.101dd730
test eax, eax
je 0x1023bc22
cmp byte [eax + 4], 0x72
jne 0x1023bbf9
mov ecx, eax
call fcn.101e8f10
test eax, eax
je 0x1023bc22
mov cl, byte [eax + 4]
cmp cl, 0x69
jne 0x1023bc0a
mov eax, dword [eax + 0x10]
jmp 0x1023bc24
cmp cl, 0x66
jne 0x1023bc22
movss xmm0, dword [eax + 0x10]
addss xmm0, dword [0x1058891c]
cvttss2si eax, xmm0
jmp 0x1023bc24
xor eax, eax
test esi, esi
js 0x1023bc33
cmp eax, 0xff
jg 0x1023bc33
cmp esi, eax
jle 0x1023bc3f
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x248c], ecx
jmp 0x1023bc45
mov ecx, dword [ebp - 0x248c]
sub eax, ecx
xor esi, esi
inc eax
mov dword [ebp - 0x2488], esi
mov dword [ebp - 0x2498], eax
test eax, eax
jle 0x1023c025
mov edi, edi
cmp byte [edi + 4], 0x72
mov eax, edi
jne 0x1023bc6f
mov ecx, edi
call fcn.101e8f10
test eax, eax
je 0x1023bc8a
cmp byte [eax + 4], 0x61
jne 0x1023bc8a
test esi, esi
js 0x1023bc8a
cmp esi, dword [eax + 0x10]
jge 0x1023bc8a
mov eax, dword [eax + 0x18]
mov eax, dword [eax + esi*4]
jmp 0x1023bc8c
xor eax, eax
test eax, eax
je 0x1023bcce
cmp byte [eax + 4], 0x72
jne 0x1023bc9d
mov ecx, eax
call fcn.101e8f10
test eax, eax
je 0x1023bcce
mov cl, byte [eax + 4]
cmp cl, 0x69
jne 0x1023bcae
mov edi, dword [eax + 0x10]
jmp 0x1023bcc4
cmp cl, 0x66
jne 0x1023bcce
movss xmm0, dword [eax + 0x10]
addss xmm0, dword [0x1058891c]
cvttss2si edi, xmm0
test edi, edi
jne 0x1023bd85
jmp 0x1023bcd0
xor edi, edi
mov ecx, dword [ebp - 0x2480]
mov eax, ecx
cmp byte [ecx + 4], 0x72
jne 0x1023bce3
call fcn.101e8f10
test eax, eax
je 0x1023bcf2
cmp byte [eax + 4], 0x61
jne 0x1023bcf2
mov eax, dword [eax + 0x10]
jmp 0x1023bcf4
xor eax, eax
cmp esi, eax
jl 0x1023bd85
add esi, dword [ebp - 0x248c]
mov ecx, dword [ebp - 0x2484]
call fcn.101dbcf0
push eax
call fcn.101dbcd0
mov edi, dword [ebp - 0x2470]
push eax
push esi
push str.font_width_missing_for_glyph__d___d__d_R_
push 0x343
push str...mupdf_sourcepdfpdf_font.c
push edi
call fcn.101df520
add esp, 0x1c
mov dword [ebp - 0x246c], 0
lea edx, [ebp - 0x246c]
mov dword [ebp - 0x2468], 0x3e8
mov ecx, ebx
mov dword [ebp - 0x2464], 0x3e8
mov dword [ebp - 0x2460], 0x48
mov dword [ebp - 0x245c], 0x48
call fcn.10236110
mov edx, dword [ebp - 0x2474]
mov ecx, edi
push esi
call fcn.10239650
add esp, 4
mov edi, eax
mov esi, dword [ebp - 0x2474]
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x50]
inc eax
mov dword [ebp - 0x2490], ecx
cmp eax, ecx
jl 0x1023be25
lea eax, [ecx + 0x10]
mov ecx, dword [esi + 0x5c]
mov dword [ebp - 0x2494], ecx
test eax, eax
je 0x1023bdd8
cmp eax, 0x1fffffff
ja 0x1023c1be
shl eax, 3
mov edx, ecx
mov ecx, dword [ebp - 0x2470]
push eax
call fcn.101f3180
add esp, 4
test eax, eax
jne 0x1023be16
jmp 0x1023c196
mov eax, dword [ebp - 0x2470]
push 0
mov eax, dword [eax + 4]
push dword [eax]
mov eax, dword [eax + 4]
call eax
mov eax, dword [ebp - 0x2470]
push dword [ebp - 0x2494]
mov eax, dword [eax]
push dword [eax]
mov eax, dword [eax + 0xc]
call eax
mov eax, dword [ebp - 0x2470]
push 0
mov eax, dword [eax + 4]
push dword [eax]
mov eax, dword [eax + 8]
call eax
add esp, 0x18
xor eax, eax
mov dword [esi + 0x5c], eax
mov eax, dword [ebp - 0x2490]
add eax, 0x10
mov dword [esi + 0x50], eax
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x5c]
mov edx, dword [ebp - 0x248c]
add edx, dword [ebp - 0x2488]
mov word [eax + ecx*8], dx
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x5c]
mov word [eax + ecx*8 + 2], dx
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x5c]
mov dword [eax + ecx*8 + 4], edi
inc dword [esi + 0x4c]
mov esi, dword [ebp - 0x2488]
inc esi
mov dword [ebp - 0x2488], esi
cmp esi, dword [ebp - 0x2498]
jge 0x1023c025
mov edi, dword [ebp - 0x2480]
jmp 0x1023bc60
mov eax, dword [esi + 4]
push 2
push dword [eax]
mov eax, dword [eax + 4]
call eax
add esp, 8
mov dword [ebp - 0x24a0], 1
lea edx, [ebp - 0x2458]
mov dword [ebp - 0x2458], 0
mov ecx, ebx
mov dword [ebp - 0x2454], 0x3e8
mov dword [ebp - 0x2450], 0x3e8
mov dword [ebp - 0x244c], 0x48
mov dword [ebp - 0x2448], 0x48
call fcn.10236110
test eax, eax
je 0x1023bf10
cmp dword [str.no_error], 0
mov ecx, 0x1036b610
je 0x1023bef2
cmp dword [ecx], eax
je 0x1023bf79
add ecx, 8
cmp dword [ecx + 4], 0
jne 0x1023bee1
mov eax, str.Unknown_error
push eax
push str.freetype_set_character_size:__s
push 0x350
push str...mupdf_sourcepdfpdf_font.c
push esi
call fcn.101df520
add esp, 0x14
xor ebx, ebx
mov edx, dword [ebp - 0x2474]
mov ecx, esi
push ebx
call fcn.10239650
mov esi, dword [ebp - 0x2474]
add esp, 4
mov dword [ebp - 0x2498], eax
mov ecx, dword [esi + 0x4c]
mov edi, dword [esi + 0x50]
inc ecx
cmp ecx, edi
jl 0x1023bfc5
mov ecx, dword [esi + 0x5c]
mov dword [ebp - 0x2494], ecx
add edi, 0x10
je 0x1023bf81
cmp edi, 0x1fffffff
ja 0x1023c1fc
lea eax, [edi*8]
mov edx, ecx
mov ecx, dword [ebp - 0x2470]
push eax
call fcn.101f3180
add esp, 4
test eax, eax
jne 0x1023bfbf
jmp 0x1023c1dd
mov eax, dword [ecx + 4]
jmp 0x1023bef7
mov eax, dword [ebp - 0x2470]
push 0
mov eax, dword [eax + 4]
push dword [eax]
mov eax, dword [eax + 4]
call eax
mov eax, dword [ebp - 0x2470]
push dword [ebp - 0x2494]
mov eax, dword [eax]
push dword [eax]
mov eax, dword [eax + 0xc]
call eax
mov eax, dword [ebp - 0x2470]
push 0
mov eax, dword [eax + 4]
push dword [eax]
mov eax, dword [eax + 8]
call eax
add esp, 0x18
xor eax, eax
mov dword [esi + 0x5c], eax
mov dword [esi + 0x50], edi
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x5c]
movzx edx, bx
inc ebx
mov word [eax + ecx*8], dx
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x5c]
mov word [eax + ecx*8 + 2], dx
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x5c]
mov edx, dword [ebp - 0x2498]
mov dword [eax + ecx*8 + 4], edx
inc dword [esi + 0x4c]
cmp ebx, 0x100
jge 0x1023c004
mov esi, dword [ebp - 0x2470]
jmp 0x1023bf12
mov ebx, dword [ebp - 0x2470]
push 2
mov eax, dword [ebx + 4]
push dword [eax]
mov eax, dword [eax + 8]
call eax
add esp, 8
mov dword [ebp - 0x24a0], 0
jmp 0x1023c02b
mov ebx, dword [ebp - 0x2470]
mov esi, dword [ebp - 0x2474]
mov eax, dword [esi + 0x5c]
test eax, eax
je 0x1023c063
push 0x1026f6c0
push 8
push dword [esi + 0x4c]
push eax
call dword [sym.imp.MSVCR120.dll_qsort]
mov eax, dword [esi + 0x50]
add esp, 0x10
shl eax, 3
add dword [esi + 8], eax
jmp 0x1023c063
mov eax, dword [ebp - 0x249c]
mov dword [ebp - 0x2484], eax
mov esi, dword [ebx + 0xc]
mov edx, dword [esi]
mov eax, edx
shl eax, 4
add eax, edx
mov ecx, dword [esi + eax*4 + 4]
lea eax, [edx - 1]
mov dword [esi], eax
cmp ecx, 1
jle 0x1023c14c
cmp dword [ebp - 0x24a0], 0
je 0x1023c099
mov eax, dword [ebx + 4]
push 2
push dword [eax]
mov eax, dword [eax + 8]
call eax
add esp, 8
mov esi, dword [ebp - 0x2474]
test esi, esi
je 0x1023c0d9
mov edi, dword [ebp - 0x2478]
cmp edi, dword [esi + 0x38]
je 0x1023c0d9
mov eax, dword [ebx + 4]
push 0
push dword [eax]
mov eax, dword [eax + 4]
call eax
mov eax, dword [ebx]
push edi
push dword [eax]
mov eax, dword [eax + 0xc]
call eax
mov eax, dword [ebx + 4]
push 0
push dword [eax]
mov eax, dword [eax + 8]
call eax
mov esi, dword [ebp - 0x2474]
add esp, 0x18
xor edi, edi
test esi, esi
je 0x1023c11b
mov eax, dword [ebx + 4]
push edi
push dword [eax]
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
add esp, 8
test eax, eax
js 0x1023c0fe
dec eax
mov dword [esi], eax
mov eax, 1
cmove edi, eax
mov eax, dword [ebx + 4]
push 0
push dword [eax]
mov eax, dword [eax + 8]
call eax
add esp, 8
test edi, edi
je 0x1023c11b
mov eax, dword [esi + 4]
push esi
push ebx
call eax
add esp, 8
mov eax, dword [ebp - 0x2484]
test eax, eax
je 0x1023c130
cmp byte [eax + 4], 0x72
jne 0x1023c130
mov ecx, dword [eax + 0x14]
jmp 0x1023c132
xor ecx, ecx
test eax, eax
je 0x1023c21b
cmp byte [eax + 4], 0x72
jne 0x1023c21b
mov eax, dword [eax + 0x10]
jmp 0x1023c21d
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x2474]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.1033d458
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x2470]
mov ecx, dword [eax + 0xc]
call fcn.101df680
push 2
push 0x100
push str.malloc_of_array___d_x__d_bytes__failed
push 1
push 0x57
push str...mupdf_source_fitzmemory.c
push dword [ebp - 0x2470]
call fcn.101df770
call fcn.101df680
mov eax, dword [ebp - 0x2490]
push 8
add eax, 0x10
push eax
push str.resize_array___d_x__d_bytes__failed
push 1
push 0xa6
push str...mupdf_source_fitzmemory.c
push dword [ebp - 0x2470]
call fcn.101df770
push 8
push eax
push str.resize_array___d_x__d_bytes__failed__integer_overflow_
push 1
push 0xa2
push str...mupdf_source_fitzmemory.c
push dword [ebp - 0x2470]
call fcn.101df770
push 8
push edi
push str.resize_array___d_x__d_bytes__failed
push 1
push 0xa6
push str...mupdf_source_fitzmemory.c
push dword [ebp - 0x2470]
call fcn.101df770
push 8
push edi
push str.resize_array___d_x__d_bytes__failed__integer_overflow_
push 1
push 0xa2
push str...mupdf_source_fitzmemory.c
push dword [ebp - 0x2470]
call fcn.101df770
xor eax, eax
push ecx
push eax
push str.cannot_load_simple_font___d__d_R_
push 0x362
push str...mupdf_sourcepdfpdf_font.c
push ebx
call fcn.101df830
int3