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

Disassembly:
jmp 0x10093bcc
sub esp, 0x3d4
mov eax, dword [0x10184508]
xor eax, esp
mov dword [esp + 0x3d0], eax
mov eax, dword [esp + 0x3dc]
mov ecx, dword [esp + 0x3ec]
push ebx
xor ebx, ebx
mov dword [esp + 0x28], eax
push ebp
mov ebp, dword [esp + 0x3e8]
push esi
mov esi, dword [esp + 0x3e4]
push edi
mov edi, dword [esp + 0x3f4]
push eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x8c], ebx
call sym.CoreFoundation.dll_CFStringGetLength
mov dword [esp + 0x2c], eax
xor edx, edx
mov eax, dword [esp + 0x3fc]
inc edx
mov cl, al
and cl, dl
mov byte [esp + 0x22], cl
mov ecx, eax
shr ecx, 7
and cl, dl
test eax, 0x191
mov dword [esp + 0x6c], ecx
mov ecx, eax
setne byte [esp + 0x43]
shr ecx, 6
shr eax, 9
and cl, dl
and al, dl
mov dword [esp + 0x90], ecx
push ebx
push 0x6e
mov dword [esp + 0x70], eax
call sym.CoreFoundation.dll_CFUniCharGetBitmapPtrForPlane
add esp, 0xc
mov dword [esp + 0x78], eax
test byte [esp + 0x3f8], 0x20
mov eax, dword [esp + 0x24]
mov dword [esp + 0x44], ebx
mov byte [esp + 0x13], bl
mov dword [esp + 0x50], ebx
mov byte [esp + 0x57], bl
je 0x10093cce
test eax, eax
jne 0x10093cd8
call sym.CoreFoundation.dll_CFLocaleCopyCurrent
mov dword [esp + 0x24], eax
mov byte [esp + 0x13], 1
test eax, eax
jne 0x10093cd8
mov dword [esp + 0x70], ebx
jmp 0x10093ce3
push eax
call fcn.1008b786
pop ecx
mov dword [esp + 0x70], eax
push dword [esp + 0x3f8]
lea eax, [esp + 0xa0]
push eax
call fcn.100901ed
pop ecx
pop ecx
test al, al
je 0x10093d0f
lea eax, [esp + 0x9c]
mov byte [esp + 0x3f], 1
mov dword [esp + 0x50], eax
jmp 0x10093d11
mov eax, ebx
or ecx, 0xffffffff
cmp dword [esp + 0x24], ebx
jne 0x10093f95
test eax, eax
jne 0x10093f95
cmp byte [esp + 0x8c], bl
jne 0x10093f95
mov edi, dword [sym.CoreFoundation.dll___CFDefaultEightBitStringEncoding]
cmp edi, ecx
jne 0x10093d48
call sym.CoreFoundation.dll___CFStringComputeEightBitStringEncoding
mov edi, dword [sym.CoreFoundation.dll___CFDefaultEightBitStringEncoding]
push edi
push esi
call sym.CoreFoundation.dll_CFStringGetCStringPtr
push edi
push dword [esp + 0x40]
mov esi, eax
call sym.CoreFoundation.dll_CFStringGetCStringPtr
xor ecx, ecx
add esp, 0x10
inc ecx
mov edx, eax
mov dword [esp + 0x20], ecx
test esi, esi
je 0x10093ed6
test edx, edx
je 0x10093ed6
and dword [esp + 0x3f8], 0xffffffef
cmp edi, 0x600
jne 0x10093dd3
cmp byte [esp + 0x64], bl
jne 0x10093dd3
cmp byte [esp + 0x1e], bl
je 0x10093f54
mov edi, dword [esp + 0x18]
push ebx
mov ebx, dword [esp + 0x2c]
cmp edi, ebx
mov eax, ebx
cmovl eax, edi
push eax
push edx
lea eax, [esi + ebp]
push eax
call sym.CoreFoundation.dll__NS_strncasecmp_l
mov ecx, eax
add esp, 0x10
test ecx, ecx
jne 0x10093dbf
mov ecx, edi
sub ecx, ebx
mov eax, ecx
sar eax, 0x1f
and eax, 0xfffffffe
inc eax
neg ecx
sbb ecx, ecx
and eax, ecx
jmp 0x1009550e
cmp byte [esp + 0x1e], bl
jne 0x10093de3
cmp byte [esp + 0x68], bl
je 0x10093f54
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
cmp edi, eax
cmovl eax, edi
add esi, ebp
mov dword [esp + 0x5c], eax
test eax, eax
jle 0x10093ed2
mov edi, esi
mov ecx, edx
sub edi, edx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x80], edi
movzx edi, byte [edi + ecx]
movzx ecx, byte [ecx]
mov dword [esp + 0x14], ecx
cmp edi, ecx
je 0x10093e7d
cmp edi, 0x80
jae 0x10093e9f
cmp ecx, 0x80
jae 0x10093e9f
cmp byte [esp + 0x64], bl
je 0x10093e4e
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x44], ebx
jne 0x10093e4e
cmp edi, ecx
sbb eax, eax
and eax, 0xfffffffe
inc eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x5c]
cmp byte [esp + 0x1e], bl
je 0x10093e75
lea eax, [edi - 0x41]
cmp eax, 0x19
lea ecx, [edi + 0x20]
cmova ecx, edi
mov edi, ecx
mov ecx, dword [esp + 0x14]
lea eax, [ecx - 0x41]
cmp eax, 0x19
mov eax, dword [esp + 0x5c]
ja 0x10093e75
add ecx, 0x20
cmp edi, ecx
jne 0x10094d5c
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x60]
inc edi
inc ecx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x60], ecx
cmp edi, eax
jge 0x10093ea5
mov edi, dword [esp + 0x80]
jmp 0x10093e0f
mov edi, dword [esp + 0x4c]
mov esi, ebx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], edi
cmp edi, eax
jne 0x10093f54
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x28]
mov eax, ecx
sar eax, 0x1f
and eax, 0xfffffffe
inc eax
test ecx, ecx
cmove eax, dword [esp + 0x44]
jmp 0x1009550e
mov edi, ebx
jmp 0x10093ea9
cmp byte [esp + 0x3f], bl
jne 0x10093f54
test esi, esi
jne 0x10093f58
test edx, edx
jne 0x10093f91
push dword [esp + 0x2c]
call sym.CoreFoundation.dll_CFStringGetCharactersPtr
push dword [esp + 0x38]
mov esi, eax
call sym.CoreFoundation.dll_CFStringGetCharactersPtr
mov edx, eax
pop ecx
pop ecx
push 2
pop ecx
test esi, esi
je 0x10093f91
test edx, edx
je 0x10093f54
mov edi, dword [esp + 0x18]
lea ecx, [esi + ebp*2]
mov ebp, dword [esp + 0x28]
cmp edi, ebp
mov eax, ebp
cmovl eax, edi
sub edx, ecx
lea esi, [ecx + eax*2]
cmp ecx, esi
jae 0x10093f38
movzx eax, word [edx + ecx]
movzx ebx, word [ecx]
add ecx, 2
sub ebx, eax
je 0x10093f26
test ebx, ebx
jne 0x10093f40
mov ebx, edi
sub ebx, ebp
mov eax, ebx
sar eax, 0x1f
and eax, 0xfffffffe
inc eax
neg ebx
sbb ebx, ebx
and eax, ebx
jmp 0x1009550e
test esi, esi
je 0x10093f91
test edx, edx
je 0x10093f91
mov edi, dword [esp + 0x28]
mov eax, edi
mov ebx, dword [esp + 0x18]
cmp ebx, edi
cmovl eax, ebx
imul ebp, ecx
imul eax, ecx
add ebp, esi
push eax
push edx
push ebp
call sub.VCRUNTIME140.dll_memcmp
mov ecx, eax
add esp, 0xc
test ecx, ecx
jne 0x10093dbf
mov ecx, ebx
sub ecx, edi
jmp 0x10093dbf
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
push eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d4], ebp
mov dword [esp + 0x1d8], edi
call sym.CoreFoundation.dll_CFStringGetCharactersPtr
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1d0], eax
mov eax, dword [esp + 0x38]
push eax
mov dword [esp + 0x1e4], ebx
mov dword [esp + 0x1e0], ebx
mov dword [esp + 0x138], eax
mov dword [esp + 0x140], ebx
mov dword [esp + 0x144], ecx
call sym.CoreFoundation.dll_CFStringGetCharactersPtr
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x1c]
pop ecx
pop ecx
mov dword [esp + 0x134], eax
mov dword [esp + 0x144], ebx
mov dword [esp + 0x140], ebx
cmp dword [esp + 0x24], ebx
je 0x1009402e
mov dword [esp + 0x30], ebp
mov dword [esp + 0x6c], esi
cmp byte [esp + 0x64], bl
je 0x1009402e
and dword [esp + 0x3f8], 0xffffff7f
mov byte [esp + 0x68], bl
cmp ebp, edi
jge 0x10094532
mov ecx, ebx
cmp esi, dword [esp + 0x28]
jge 0x10094532
test ecx, ecx
jne 0x10094132
mov edx, dword [esp + 0x1cc]
test edx, edx
je 0x10094079
test ebp, ebp
js 0x100940f1
cmp ebp, dword [esp + 0x1d4]
jge 0x100940f1
mov eax, dword [esp + 0x1d0]
add eax, ebp
movzx eax, word [edx + eax*2]
jmp 0x100940f3
cmp ebp, dword [esp + 0x1dc]
jge 0x1009408b
cmp ebp, dword [esp + 0x1d8]
jge 0x100940de
test ebp, ebp
js 0x100940f1
mov eax, dword [esp + 0x1d4]
cmp ebp, eax
jge 0x100940f1
xor ecx, ecx
lea edx, [ebp - 4]
test edx, edx
cmovs edx, ecx
mov dword [esp + 0x1d8], edx
lea ecx, [edx + 0x40]
cmp ecx, eax
cmovg ecx, eax
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x1dc], ecx
add eax, edx
sub ecx, edx
lea edx, [esp + 0x148]
push edx
push ecx
push eax
push dword [esp + 0x1d4]
call sym.CoreFoundation.dll_CFStringGetCharacters
add esp, 0x10
mov eax, ebp
sub eax, dword [esp + 0x1d8]
movzx eax, word [esp + eax*2 + 0x148]
jmp 0x100940f3
mov eax, ebx
movzx eax, ax
mov dword [esp + 0x20], eax
cmp byte [esp + 0x1e], bl
je 0x10094128
cmp eax, 0x41
jb 0x10094128
cmp eax, 0x5a
ja 0x10094128
cmp dword [esp + 0x70], ebx
je 0x10094115
cmp eax, 0x49
je 0x10094128
cmp byte [esp + 0x64], bl
je 0x10094121
cmp dword [esp + 0x44], ebx
je 0x10094128
add eax, 0x20
mov dword [esp + 0x20], eax
mov dword [esp + 0x60], 1
jmp 0x10094146
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + ecx*4 + 0x1e0]
inc ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x58], ecx
cmp dword [esp + 0x40], ebx
jne 0x10094238
mov edx, dword [esp + 0x134]
test edx, edx
je 0x1009417f
test esi, esi
js 0x100941f7
cmp esi, dword [esp + 0x13c]
jge 0x100941f7
mov eax, dword [esp + 0x138]
add eax, esi
movzx eax, word [edx + eax*2]
jmp 0x100941f9
cmp esi, dword [esp + 0x144]
jge 0x10094191
cmp esi, dword [esp + 0x140]
jge 0x100941e4
test esi, esi
js 0x100941f7
mov eax, dword [esp + 0x13c]
cmp esi, eax
jge 0x100941f7
xor ecx, ecx
lea edx, [esi - 4]
test edx, edx
cmovs edx, ecx
mov dword [esp + 0x140], edx
lea ecx, [edx + 0x40]
cmp ecx, eax
cmovg ecx, eax
mov eax, dword [esp + 0x138]
mov dword [esp + 0x144], ecx
add eax, edx
sub ecx, edx
lea edx, [esp + 0xb0]
push edx
push ecx
push eax
push dword [esp + 0x13c]
call sym.CoreFoundation.dll_CFStringGetCharacters
add esp, 0x10
mov eax, esi
sub eax, dword [esp + 0x140]
movzx eax, word [esp + eax*2 + 0xb0]
jmp 0x100941f9
mov eax, ebx
movzx eax, ax
mov dword [esp + 0x2c], eax
cmp byte [esp + 0x1e], bl
je 0x1009422e
cmp eax, 0x41
jb 0x1009422e
cmp eax, 0x5a
ja 0x1009422e
cmp dword [esp + 0x70], ebx
je 0x1009421b
cmp eax, 0x49
je 0x1009422e
cmp byte [esp + 0x64], bl
je 0x10094227
cmp dword [esp + 0x44], ebx
je 0x1009422e
add eax, 0x20
mov dword [esp + 0x2c], eax
mov dword [esp + 0x5c], 1
jmp 0x1009424c
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + ecx*4 + 0x2e0]
inc ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
cmp byte [esp + 0x8c], bl
je 0x10094582
test edx, edx
jne 0x10094582
cmp ecx, 0x39
ja 0x10094582
cmp ecx, 0x30
jb 0x10094582
cmp dword [esp + 0x40], ebx
jne 0x10094582
cmp eax, 0x39
ja 0x10094582
cmp eax, 0x30
jb 0x10094582
xorps xmm0, xmm0
mov dword [esp + 0x74], ebp
movlpd qword [esp + 0x80], xmm0
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
movlpd qword [esp + 0x94], xmm0
mov dword [esp + 0x90], esi
mov dword [esp + 0x34], eax
jmp 0x100942cf
mov edx, dword [esp + 0x20]
lea edi, [ecx - 0x30]
mov eax, edx
push 0xa
pop ecx
mul ecx
push 0xa
mov ecx, eax
xor esi, esi
mov eax, dword [esp + 0x38]
pop edx
mul edx
add ecx, edx
mov edx, dword [esp + 0x1cc]
add edi, eax
mov dword [esp + 0x34], edi
adc esi, ecx
inc ebp
mov dword [esp + 0x20], esi
test edx, edx
je 0x10094324
test ebp, ebp
js 0x1009439c
cmp ebp, dword [esp + 0x1d4]
jge 0x1009439c
mov eax, dword [esp + 0x1d0]
add eax, ebp
movzx eax, word [edx + eax*2]
jmp 0x1009439e
cmp ebp, dword [esp + 0x1dc]
jge 0x10094336
cmp ebp, dword [esp + 0x1d8]
jge 0x10094389
test ebp, ebp
js 0x1009439c
mov eax, dword [esp + 0x1d4]
cmp ebp, eax
jge 0x1009439c
xor ecx, ecx
lea edx, [ebp - 4]
test edx, edx
cmovs edx, ecx
mov dword [esp + 0x1d8], edx
lea ecx, [edx + 0x40]
cmp ecx, eax
cmovg ecx, eax
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x1dc], ecx
add eax, edx
sub ecx, edx
lea edx, [esp + 0x148]
push edx
push ecx
push eax
push dword [esp + 0x1d4]
call sym.CoreFoundation.dll_CFStringGetCharacters
add esp, 0x10
mov eax, ebp
sub eax, dword [esp + 0x1d8]
movzx eax, word [esp + eax*2 + 0x148]
jmp 0x1009439e
mov eax, ebx
movzx ecx, ax
cmp ecx, 0x39
ja 0x100943af
cmp ecx, 0x30
jae 0x100942cb
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x94]
lea edi, [eax - 0x30]
xor esi, esi
mov eax, ecx
push 0xa
pop ecx
mul ecx
push 0xa
mov ecx, eax
mov eax, ebp
pop edx
mul edx
add ecx, edx
mov edx, dword [esp + 0x134]
add edi, eax
mov ebp, edi
adc ecx, esi
mov esi, dword [esp + 0x14]
inc esi
mov dword [esp + 0x80], ecx
mov dword [esp + 0x14], esi
test edx, edx
je 0x10094424
test esi, esi
js 0x100944a3
cmp esi, dword [esp + 0x13c]
jge 0x100944a3
mov eax, dword [esp + 0x138]
add eax, esi
movzx eax, word [edx + eax*2]
jmp 0x100944a5
cmp esi, dword [esp + 0x144]
jge 0x10094436
cmp esi, dword [esp + 0x140]
jge 0x10094490
test esi, esi
js 0x100944a3
mov eax, dword [esp + 0x13c]
cmp esi, eax
jge 0x100944a3
xor ecx, ecx
lea edx, [esi - 4]
test edx, edx
cmovs edx, ecx
mov dword [esp + 0x140], edx
lea ecx, [edx + 0x40]
cmp ecx, eax
cmovg ecx, eax
mov eax, dword [esp + 0x138]
mov dword [esp + 0x144], ecx
add eax, edx
sub ecx, edx
lea edx, [esp + 0xb0]
push edx
push ecx
push eax
push dword [esp + 0x13c]
call sym.CoreFoundation.dll_CFStringGetCharacters
mov ecx, dword [esp + 0x90]
add esp, 0x10
mov eax, esi
sub eax, dword [esp + 0x140]
movzx eax, word [esp + eax*2 + 0xb0]
jmp 0x100944a5
mov eax, ebx
movzx eax, ax
cmp eax, 0x39
ja 0x100944b6
cmp eax, 0x30
jae 0x100943c5
mov eax, dword [esp + 0x34]
cmp eax, ebp
mov edx, dword [esp + 0x20]
mov dword [esp + 0x80], ebp
mov ebp, dword [esp + 0x4c]
jne 0x10094d11
cmp edx, ecx
jne 0x10094d13
cmp byte [esp + 0x64], bl
je 0x10094522
cmp dword [esp + 0x44], ebx
jne 0x10094522
mov edi, dword [esp + 0x90]
mov eax, esi
mov edx, dword [esp + 0x74]
mov ecx, ebp
sub eax, edi
sub ecx, edx
cmp ecx, eax
je 0x10094522
mov dword [esp + 0x44], 1
mov eax, dword [esp + 0x44]
push 0xffffffffffffffff
pop ecx
cmovl eax, ecx
mov byte [esp + 0x57], 1
mov dword [esp + 0x44], eax
mov dword [esp + 0x7c], edx
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
cmp ebp, edi
jl 0x10094038
mov esi, dword [esp + 0x50]
cmp byte [esp + 0x68], bl
jne 0x10094544
test esi, esi
je 0x1009547e
cmp ebp, edi
jge 0x100950de
mov edx, dword [esp + 0x1cc]
test edx, edx
je 0x10094ea4
test ebp, ebp
js 0x10094f1c
cmp ebp, dword [esp + 0x1d4]
jge 0x10094f1c
mov eax, dword [esp + 0x1d0]
add eax, ebp
movzx eax, word [edx + eax*2]
jmp 0x10094f1e
cmp ecx, eax
je 0x10094cb0
cmp byte [esp + 0x3f], bl
je 0x10094e48
cmp byte [esp + 0x64], bl
je 0x100945bf
cmp dword [esp + 0x44], ebx
jne 0x100945bf
cmp ecx, eax
sbb edx, edx
and edx, 0xfffffffe
inc edx
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x88], edx
mov edx, 0x80
cmp ecx, edx
jae 0x100945e8
cmp eax, edx
jae 0x100945e8
cmp dword [esp + 0x50], ebx
jne 0x100945e8
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x10094d67
cmp byte [esp + 0x1e], bl
je 0x10094d5a
movzx ecx, cx
mov edx, 0x3ff
mov dword [esp + 0x74], ecx
lea eax, [ecx + 0x2800]
cmp ax, dx
ja 0x100946ef
mov edx, dword [esp + 0x1cc]
lea esi, [ebp + 1]
test edx, edx
je 0x10094635
test esi, esi
js 0x100946e6
cmp esi, dword [esp + 0x1d4]
jge 0x100946e6
mov eax, dword [esp + 0x1d0]
add eax, esi
movzx edx, word [edx + eax*2]
jmp 0x100946b4
cmp esi, dword [esp + 0x1dc]
jge 0x10094647
cmp esi, dword [esp + 0x1d8]
jge 0x100946a1
test esi, esi
js 0x100946b2
mov eax, dword [esp + 0x1d4]
cmp esi, eax
jge 0x100946b2
xor ecx, ecx
lea edx, [esi - 4]
test edx, edx
cmovs edx, ecx
mov dword [esp + 0x1d8], edx
lea ecx, [edx + 0x40]
cmp ecx, eax
cmovg ecx, eax
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x1dc], ecx
add eax, edx
sub ecx, edx
lea edx, [esp + 0x148]
push edx
push ecx
push eax
push dword [esp + 0x1d4]
call sym.CoreFoundation.dll_CFStringGetCharacters
mov ecx, dword [esp + 0x84]
add esp, 0x10
sub esi, dword [esp + 0x1d8]
movzx edx, word [esp + esi*2 + 0x148]
jmp 0x100946b4
mov edx, ebx
mov esi, 0x3ff
lea eax, [edx + 0x2400]
cmp ax, si
mov esi, dword [esp + 0x14]
ja 0x100946ea
movzx ecx, cx
movzx eax, dx
shl ecx, 0xa
add eax, 0xfca02400
add eax, ecx
mov dword [esp + 0x60], 2
mov dword [esp + 0x20], eax
jmp 0x100946ea
mov esi, dword [esp + 0x14]
mov edx, 0x3ff
mov eax, dword [esp + 0x2c]
movzx ecx, ax
mov dword [esp + 0x74], ecx
lea eax, [ecx + 0x2800]
cmp ax, dx
ja 0x100947e4
mov edx, dword [esp + 0x134]
inc esi
test edx, edx
je 0x10094739
test esi, esi
js 0x100947e4
cmp esi, dword [esp + 0x13c]
jge 0x100947e4
mov eax, dword [esp + 0x138]
add eax, esi
movzx edx, word [edx + eax*2]
jmp 0x100947b8
cmp esi, dword [esp + 0x144]
jge 0x1009474b
cmp esi, dword [esp + 0x140]
jge 0x100947a5
test esi, esi
js 0x100947b6
mov eax, dword [esp + 0x13c]
cmp esi, eax
jge 0x100947b6
xor ecx, ecx
lea edx, [esi - 4]
test edx, edx
cmovs edx, ecx
mov dword [esp + 0x140], edx
lea ecx, [edx + 0x40]
cmp ecx, eax
cmovg ecx, eax
mov eax, dword [esp + 0x138]
mov dword [esp + 0x144], ecx
add eax, edx
sub ecx, edx
lea edx, [esp + 0xb0]
push edx
push ecx
push eax
push dword [esp + 0x13c]
call sym.CoreFoundation.dll_CFStringGetCharacters
mov ecx, dword [esp + 0x84]
add esp, 0x10
sub esi, dword [esp + 0x140]
movzx edx, word [esp + esi*2 + 0xb0]
jmp 0x100947b8
mov edx, ebx
lea eax, [edx + 0x2400]
mov esi, 0x3ff
cmp ax, si
ja 0x100947e4
movzx ecx, cx
movzx eax, dx
shl ecx, 0xa
add eax, 0xfca02400
add eax, ecx
mov dword [esp + 0x5c], 2
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x10094a4d
mov esi, dword [ecx + 4]
mov edx, esi
mov eax, dword [esp + 0x20]
shr edx, 2
and edx, 0xffffff01
mov dword [esp + 0x34], edx
cmp eax, dword [ecx + 8]
jb 0x10094848
cmp eax, dword [ecx + 0xc]
jae 0x10094848
cmp eax, 0xffff
ja 0x1009490e
test esi, 2
jne 0x1009490e
mov edi, dword [ecx + 0x10]
xor ecx, ecx
inc ecx
and esi, ecx
test edi, edi
jne 0x1009488c
mov al, dl
xor al, cl
test esi, esi
movzx ecx, al
movzx eax, dl
cmovne ecx, eax
mov dl, cl
mov edi, dword [esp + 0x18]
test dl, dl
je 0x10094922
mov edx, dword [esp + 0x38]
test edx, edx
jle 0x10094867
xor eax, eax
cmp dword [esp + 0x58], edx
cmove edx, eax
mov dword [esp + 0x38], edx
test edx, edx
jne 0x10094871
add ebp, dword [esp + 0x60]
mov dword [esp + 0x4c], ebp
mov ecx, dword [esp + 0x48]
cmp dword [esp + 0x40], ebx
mov esi, dword [esp + 0x14]
lea eax, [ecx - 1]
cmovle eax, ecx
mov dword [esp + 0x48], eax
jmp 0x10094526
test esi, esi
jne 0x100948b7
mov ecx, eax
xor edx, edx
shr eax, 3
and ecx, 7
inc edx
shl edx, cl
and dl, byte [eax + edi]
mov al, byte [esp + 0x34]
xor al, 1
test dl, dl
movzx ecx, al
mov eax, dword [esp + 0x34]
movzx eax, al
cmove ecx, eax
jmp 0x10094842
shr eax, 8
mov al, byte [eax + edi]
mov byte [esp + 0x1f], al
cmp al, 0xff
jne 0x100948cc
xor dl, cl
jmp 0x10094844
test al, al
je 0x10094844
mov eax, dword [esp + 0x20]
movzx esi, byte [esp + 0x1f]
movzx ecx, al
add esi, 7
shl esi, 5
mov edx, ecx
xor eax, eax
shr edx, 3
add esi, edi
and ecx, 7
mov edi, dword [esp + 0x18]
inc eax
shl eax, cl
test byte [edx + esi], al
mov edx, dword [esp + 0x34]
je 0x10094848
xor dl, 1
jmp 0x10094848
push eax
push dword [ecx]
call sym.CoreFoundation.dll_CFCharacterSetIsLongCharacterMember
test al, al
pop ecx
pop ecx
setne dl
jmp 0x10094848
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x2c]
mov esi, dword [ecx + 4]
mov edx, esi
shr edx, 2
and edx, 0xffffff01
mov dword [esp + 0x34], edx
cmp eax, dword [ecx + 8]
jb 0x10094a03
cmp eax, dword [ecx + 0xc]
jae 0x10094a03
cmp eax, 0xffff
ja 0x100949f4
test esi, 2
jne 0x100949f4
mov edi, dword [ecx + 0x10]
xor ecx, ecx
inc ecx
and esi, ecx
test edi, edi
jne 0x10094982
mov al, dl
xor al, cl
test esi, esi
movzx ecx, al
movzx eax, dl
cmovne ecx, eax
jmp 0x100949ab
test esi, esi
jne 0x100949af
mov ecx, eax
xor edx, edx
shr eax, 3
and ecx, 7
inc edx
shl edx, cl
and dl, byte [eax + edi]
mov al, byte [esp + 0x34]
xor al, 1
test dl, dl
movzx ecx, al
mov eax, dword [esp + 0x34]
movzx eax, al
cmove ecx, eax
mov dl, cl
jmp 0x10094a03
shr eax, 8
mov al, byte [eax + edi]
mov byte [esp + 0x1f], al
cmp al, 0xff
jne 0x100949c1
xor dl, cl
jmp 0x10094a03
test al, al
je 0x10094a03
mov eax, dword [esp + 0x2c]
movzx esi, byte [esp + 0x1f]
movzx ecx, al
add esi, 7
shl esi, 5
mov edx, ecx
xor eax, eax
shr edx, 3
add esi, edi
and ecx, 7
inc eax
shl eax, cl
test byte [edx + esi], al
mov edx, dword [esp + 0x34]
je 0x10094a03
xor dl, 1
jmp 0x10094a03
push eax
push dword [ecx]
call sym.CoreFoundation.dll_CFCharacterSetIsLongCharacterMember
test al, al
pop ecx
pop ecx
setne dl
test dl, dl
je 0x10094a49
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x10094a1e
xor ecx, ecx
cmp dword [esp + 0x48], eax
cmove eax, ecx
mov dword [esp + 0x40], eax
test eax, eax
mov esi, dword [esp + 0x14]
jne 0x10094a2c
add esi, dword [esp + 0x5c]
mov dword [esp + 0x14], esi
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x38]
test ecx, ecx
mov edi, dword [esp + 0x18]
lea eax, [edx - 1]
cmovle eax, edx
mov dword [esp + 0x58], eax
jmp 0x1009452a
mov edi, dword [esp + 0x18]
cmp byte [esp + 0x68], bl
je 0x10094b30
test ebp, ebp
jle 0x10094b30
mov ecx, dword [esp + 0x38]
mov byte [esp + 0x56], bl
mov byte [esp + 0x1f], bl
test ecx, ecx
jne 0x10094abc
mov eax, dword [esp + 0x20]
cmp eax, 0x10000
jae 0x10094a80
mov esi, dword [esp + 0x78]
jmp 0x10094a93
shr eax, 0x10
push eax
push 0x6e
call sym.CoreFoundation.dll_CFUniCharGetBitmapPtrForPlane
pop ecx
mov esi, eax
mov eax, dword [esp + 0x24]
pop ecx
test esi, esi
je 0x10094abc
movzx edx, ax
xor eax, eax
mov ecx, edx
inc eax
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + esi], al
mov eax, dword [esp + 0x2c]
je 0x10094ac0
mov cl, 1
mov dword [esp + 0x20], eax
mov byte [esp + 0x56], cl
jmp 0x10094ac0
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x40], ebx
jne 0x10094b0c
cmp eax, 0x10000
jae 0x10094ad3
mov esi, dword [esp + 0x78]
jmp 0x10094ae6
shr eax, 0x10
push eax
push 0x6e
call sym.CoreFoundation.dll_CFUniCharGetBitmapPtrForPlane
pop ecx
mov esi, eax
mov eax, dword [esp + 0x30]
pop ecx
test esi, esi
je 0x10094b0c
movzx edx, ax
xor eax, eax
mov ecx, edx
inc eax
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + esi], al
je 0x10094b0c
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
mov byte [esp + 0x1f], 1
mov al, byte [esp + 0x56]
mov cl, byte [esp + 0x1f]
cmp al, cl
je 0x10094b30
test al, al
je 0x10094b24
mov eax, dword [esp + 0x5c]
sub dword [esp + 0x14], eax
test cl, cl
je 0x10094b30
sub ebp, dword [esp + 0x60]
mov dword [esp + 0x4c], ebp
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
cmp ecx, eax
je 0x10094c23
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x70]
test edx, edx
jne 0x10094baa
lea eax, [esp + 0x60]
push eax
push 0x40
lea eax, [esp + 0x1e8]
push eax
push esi
push dword [esp + 0x408]
lea eax, [esp + 0x15c]
push ebp
push eax
push ecx
call fcn.10090267
mov edx, eax
add esp, 0x20
mov dword [esp + 0x38], edx
test edx, edx
jle 0x10094b94
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x58], 1
jmp 0x10094b98
mov ecx, dword [esp + 0x20]
test edx, edx
jne 0x10094ba6
cmp dword [esp + 0x40], ebx
jg 0x10094da8
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x40], ebx
jne 0x10094c23
test edx, edx
je 0x10094bb8
cmp ecx, eax
je 0x10094c23
lea ecx, [esp + 0x5c]
push ecx
push 0x40
lea ecx, [esp + 0x2e8]
push ecx
push esi
push dword [esp + 0x408]
mov esi, dword [esp + 0x28]
lea ecx, [esp + 0xc4]
push esi
push ecx
push eax
call fcn.10090267
mov ecx, eax
add esp, 0x20
mov dword [esp + 0x40], ecx
test ecx, ecx
jle 0x10094c00
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x48], 1
jmp 0x10094c04
mov eax, dword [esp + 0x2c]
test ecx, ecx
mov ecx, dword [esp + 0x20]
je 0x10094c10
cmp ecx, eax
je 0x10094c27
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x10094dbc
cmp ecx, eax
jmp 0x10094db4
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
test edx, edx
jle 0x10094cc3
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x40], ebx
jle 0x10094cb4
cmp ecx, edx
jge 0x10094cb4
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x48]
cmp eax, edi
jge 0x10094c6d
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + ecx*4 + 0x1e0]
cmp eax, dword [esp + ebp*4 + 0x2e0]
mov eax, ebp
jne 0x10094c6d
inc ecx
inc eax
mov dword [esp + 0x48], eax
cmp ecx, edx
jl 0x10094c49
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x58], ecx
cmp ecx, edx
jge 0x10094cb4
cmp eax, dword [esp + 0x40]
jge 0x10094cb4
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x10094e00
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + eax*4 + 0x1e0]
cmp eax, dword [esp + edx*4 + 0x2e0]
sbb esi, esi
and esi, 0xfffffffe
inc esi
jmp 0x10094e3a
mov ecx, dword [esp + 0x58]
test edx, edx
jle 0x10094cc3
xor eax, eax
cmp ecx, edx
cmove edx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x10094cd8
xor ecx, ecx
cmp dword [esp + 0x48], eax
cmove eax, ecx
mov dword [esp + 0x40], eax
test edx, edx
jne 0x10094ce4
add ebp, dword [esp + 0x60]
mov dword [esp + 0x4c], ebp
test eax, eax
jne 0x10094cf0
add esi, dword [esp + 0x5c]
mov dword [esp + 0x14], esi
test edx, edx
jne 0x10094526
mov ecx, dword [esp + 0x38]
test eax, eax
jne 0x1009452a
mov dword [esp + 0x30], ebp
mov dword [esp + 0x6c], esi
jmp 0x1009452a
cmp edx, ecx
ja 0x10094d3d
jb 0x10094d20
cmp eax, dword [esp + 0x80]
jae 0x10094d3d
cmp byte [esp + 0x13], bl
je 0x10094d35
mov eax, dword [esp + 0x24]
test eax, eax
je 0x10094d35
push eax
call sym.CoreFoundation.dll_CFRelease
pop ecx
or eax, 0xffffffff
jmp 0x1009550e
cmp byte [esp + 0x13], bl
je 0x10094d52
mov eax, dword [esp + 0x24]
test eax, eax
je 0x10094d52
push eax
call sym.CoreFoundation.dll_CFRelease
pop ecx
xor eax, eax
inc eax
jmp 0x1009550e
cmp ecx, eax
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x1009550e
mov eax, dword [esp + 0x28]
sub edi, ebp
push edx
push dword [esp + 0x3fc]
sub eax, esi
push eax
push esi
lea eax, [esp + 0xc0]
push eax
push edi
lea eax, [esp + 0x160]
push ebp
push eax
call fcn.10001b36
add esp, 0x20
mov esi, eax
cmp byte [esp + 0x13], bl
je 0x10094e9d
push dword [esp + 0x24]
jmp 0x10094e97
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x10094dbc
cmp ecx, dword [esp + 0x2c]
sbb esi, esi
and esi, 0xfffffffe
inc esi
jmp 0x10094df6
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x30]
sub eax, ecx
push edx
push dword [esp + 0x3fc]
sub edi, ebx
push eax
push ecx
lea eax, [esp + 0xc0]
push eax
push edi
lea eax, [esp + 0x160]
push ebx
push eax
call fcn.10001b36
mov edx, dword [esp + 0x44]
add esp, 0x20
mov esi, eax
cmp byte [esp + 0x13], 0
jmp 0x10094e90
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x30]
sub eax, edx
push ecx
push dword [esp + 0x3fc]
sub edi, ebx
push eax
push edx
lea eax, [esp + 0xc0]
push eax
push edi
lea eax, [esp + 0x160]
push ebx
push eax
call fcn.10001b36
mov ecx, dword [esp + 0x44]
add esp, 0x20
mov esi, eax
cmp byte [esp + 0x13], 0
je 0x10094e9d
test ecx, ecx
je 0x10094e9d
push ecx
jmp 0x10094e97
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x10094e5a
cmp ecx, eax
sbb esi, esi
and esi, 0xfffffffe
inc esi
jmp 0x10094e8c
mov eax, dword [esp + 0x28]
sub edi, ebp
push edx
push dword [esp + 0x3fc]
sub eax, esi
push eax
push esi
lea eax, [esp + 0xc0]
push eax
push edi
lea eax, [esp + 0x160]
push ebp
push eax
call fcn.10001b36
mov edx, dword [esp + 0x44]
add esp, 0x20
mov esi, eax
cmp byte [esp + 0x13], bl
je 0x10094e9d
test edx, edx
je 0x10094e9d
push edx
call sym.CoreFoundation.dll_CFRelease
pop ecx
mov eax, esi
jmp 0x1009550e
cmp ebp, dword [esp + 0x1dc]
jge 0x10094eb6
cmp ebp, dword [esp + 0x1d8]
jge 0x10094f09
test ebp, ebp
js 0x10094f1c
mov eax, dword [esp + 0x1d4]
cmp ebp, eax
jge 0x10094f1c
xor ecx, ecx
lea edx, [ebp - 4]
test edx, edx
cmovs edx, ecx
mov dword [esp + 0x1d8], edx
lea ecx, [edx + 0x40]
cmp ecx, eax
cmovg ecx, eax
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x1dc], ecx
add eax, edx
sub ecx, edx
lea edx, [esp + 0x148]
push edx
push ecx
push eax
push dword [esp + 0x1d4]
call sym.CoreFoundation.dll_CFStringGetCharacters
add esp, 0x10
mov eax, ebp
sub eax, dword [esp + 0x1d8]
movzx eax, word [esp + eax*2 + 0x148]
jmp 0x10094f1e
mov eax, ebx
movzx ecx, ax
mov dword [esp + 0x30], ecx
cmp ecx, 0x80
jae 0x10094f35
test esi, esi
je 0x100950dc
add eax, 0x2800
mov edx, 0x3ff
cmp ax, dx
ja 0x10095018
mov edx, dword [esp + 0x1cc]
lea esi, [ebp + 1]
test edx, edx
je 0x10094f7a
test esi, esi
js 0x10095018
cmp esi, dword [esp + 0x1d4]
jge 0x10095018
mov eax, dword [esp + 0x1d0]
add eax, esi
movzx edx, word [edx + eax*2]
jmp 0x10094ff6
cmp esi, dword [esp + 0x1dc]
jge 0x10094f8c
cmp esi, dword [esp + 0x1d8]
jge 0x10094fe3
test esi, esi
js 0x10094ff4
mov eax, dword [esp + 0x1d4]
cmp esi, eax
jge 0x10094ff4
xor ecx, ecx
lea edx, [esi - 4]
test edx, edx
cmovs edx, ecx
mov dword [esp + 0x1d8], edx
lea ecx, [edx + 0x40]
cmp ecx, eax
cmovg ecx, eax
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x1dc], ecx
add eax, edx
sub ecx, edx
lea edx, [esp + 0x148]
push edx
push ecx
push eax
push dword [esp + 0x1d4]
call sym.CoreFoundation.dll_CFStringGetCharacters
mov ecx, dword [esp + 0x40]
add esp, 0x10
sub esi, dword [esp + 0x1d8]
movzx edx, word [esp + esi*2 + 0x148]
jmp 0x10094ff6
mov edx, ebx
lea eax, [edx + 0x2400]
mov esi, 0x3ff
cmp ax, si
ja 0x10095018
shl ecx, 0xa
movzx eax, dx
add ecx, 0xfca02400
add ecx, eax
mov dword [esp + 0x30], ecx
cmp byte [esp + 0x68], 0
je 0x1009505b
cmp ecx, 0x10000
jae 0x1009502d
mov esi, dword [esp + 0x78]
jmp 0x10095042
mov eax, ecx
shr eax, 0x10
push eax
push 0x6e
call sym.CoreFoundation.dll_CFUniCharGetBitmapPtrForPlane
pop ecx
pop ecx
mov ecx, dword [esp + 0x30]
mov esi, eax
test esi, esi
je 0x1009505b
movzx edx, cx
xor eax, eax
mov ecx, edx
inc eax
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + esi], al
jne 0x100950bd
mov esi, dword [esp + 0x50]
test esi, esi
je 0x100950dc
mov edx, dword [esi + 4]
xor ecx, ecx
mov eax, dword [esp + 0x30]
mov ebx, edx
shr ebx, 2
inc ecx
and bl, cl
cmp eax, dword [esi + 8]
jb 0x100950b7
cmp eax, dword [esi + 0xc]
jae 0x100950b7
cmp eax, 0xffff
ja 0x1009519a
test edx, 2
jne 0x1009519a
mov edi, dword [esi + 0x10]
and edx, ecx
test edi, edi
jne 0x10095126
mov al, bl
xor al, cl
test edx, edx
movzx ecx, al
movzx eax, bl
cmovne ecx, eax
mov bl, cl
mov edi, dword [esp + 0x18]
test bl, bl
je 0x100950dc
xor ebx, ebx
cmp dword [esp + 0x30], 0x10000
mov esi, dword [esp + 0x50]
sbb eax, eax
add eax, 2
add ebp, eax
mov dword [esp + 0x4c], ebp
cmp ebp, edi
jl 0x1009454c
xor ebx, ebx
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
cmp edi, eax
jge 0x10095482
mov ebp, dword [esp + 0x13c]
mov edx, dword [esp + 0x134]
test edx, edx
je 0x100951ae
test edi, edi
js 0x10095226
cmp edi, ebp
jge 0x10095226
mov eax, dword [esp + 0x138]
add eax, edi
movzx eax, word [edx + eax*2]
jmp 0x10095228
test edx, edx
jne 0x1009514c
mov ecx, eax
inc edx
shr eax, 3
and ecx, 7
shl edx, cl
and dl, byte [eax + edi]
mov al, bl
xor al, 1
test dl, dl
movzx ecx, al
movzx eax, bl
cmove ecx, eax
jmp 0x100950b1
shr eax, 8
mov dl, byte [eax + edi]
cmp dl, 0xff
jne 0x1009515e
xor bl, cl
jmp 0x100950b3
test dl, dl
je 0x100950b3
mov eax, dword [esp + 0x30]
movzx ecx, al
xor eax, eax
movzx esi, dl
inc eax
add esi, 7
mov edx, ecx
shl esi, 5
and ecx, 7
add esi, edi
shr edx, 3
shl eax, cl
test byte [edx + esi], al
mov esi, dword [esp + 0x50]
je 0x100950b3
xor bl, 1
jmp 0x100950b3
push eax
push dword [esi]
call sym.CoreFoundation.dll_CFCharacterSetIsLongCharacterMember
test al, al
pop ecx
pop ecx
setne bl
jmp 0x100950b7
cmp edi, dword [esp + 0x144]
jge 0x100951c0
cmp edi, dword [esp + 0x140]
jge 0x10095213
test edi, edi
js 0x10095226
cmp edi, ebp
jge 0x10095226
xor eax, eax
lea edx, [edi - 4]
test edx, edx
cmovs edx, eax
mov eax, dword [esp + 0x138]
mov dword [esp + 0x140], edx
lea ecx, [edx + 0x40]
cmp ecx, ebp
cmovg ecx, ebp
add eax, edx
mov dword [esp + 0x144], ecx
sub ecx, edx
lea edx, [esp + 0xb0]
push edx
push ecx
push eax
push dword [esp + 0x13c]
call sym.CoreFoundation.dll_CFStringGetCharacters
mov ebp, dword [esp + 0x14c]
add esp, 0x10
mov eax, edi
sub eax, dword [esp + 0x140]
movzx eax, word [esp + eax*2 + 0xb0]
jmp 0x10095228
mov eax, ebx
movzx ecx, ax
mov dword [esp + 0x30], ecx
cmp ecx, 0x80
jae 0x1009523f
test esi, esi
je 0x10095474
add eax, 0x2800
mov edx, 0x3ff
cmp ax, dx
ja 0x10095319
mov edx, dword [esp + 0x134]
lea esi, [edi + 1]
test edx, edx
je 0x1009527f
test esi, esi
js 0x10095319
cmp esi, ebp
jge 0x10095319
mov eax, dword [esp + 0x138]
add eax, esi
movzx ebx, word [edx + eax*2]
jmp 0x100952f7
cmp esi, dword [esp + 0x144]
jge 0x10095291
cmp esi, dword [esp + 0x140]
jge 0x100952e8
test esi, esi
js 0x100952f7
cmp esi, ebp
jge 0x100952f7
xor eax, eax
lea edx, [esi - 4]
test edx, edx
cmovs edx, eax
mov eax, dword [esp + 0x138]
mov dword [esp + 0x140], edx
lea ecx, [edx + 0x40]
cmp ecx, ebp
cmovg ecx, ebp
add eax, edx
mov dword [esp + 0x144], ecx
sub ecx, edx
lea edx, [esp + 0xb0]
push edx
push ecx
push eax
push dword [esp + 0x13c]
call sym.CoreFoundation.dll_CFStringGetCharacters
mov ecx, dword [esp + 0x40]
add esp, 0x10
mov ebp, dword [esp + 0x13c]
sub esi, dword [esp + 0x140]
movzx ebx, word [esp + esi*2 + 0xb0]
lea eax, [ebx + 0x2400]
mov edx, 0x3ff
cmp ax, dx
ja 0x10095319
shl ecx, 0xa
movzx eax, bx
add ecx, 0xfca02400
add ecx, eax
mov dword [esp + 0x30], ecx
cmp byte [esp + 0x68], 0
je 0x10095363
cmp ecx, 0x10000
jae 0x1009532e
mov esi, dword [esp + 0x78]
jmp 0x1009534a
mov eax, ecx
shr eax, 0x10
push eax
push 0x6e
call sym.CoreFoundation.dll_CFUniCharGetBitmapPtrForPlane
mov ebp, dword [esp + 0x144]
mov esi, eax
pop ecx
pop ecx
mov ecx, dword [esp + 0x30]
test esi, esi
je 0x10095363
movzx edx, cx
xor eax, eax
mov ecx, edx
inc eax
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + esi], al
jne 0x100953c8
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x10095474
mov edx, dword [ecx + 4]
mov ebx, edx
mov eax, dword [esp + 0x30]
shr ebx, 2
and bl, 1
cmp eax, dword [ecx + 8]
jb 0x100953c0
cmp eax, dword [ecx + 0xc]
jae 0x100953c0
cmp eax, 0xffff
ja 0x10095459
test edx, 2
jne 0x10095459
mov edi, dword [ecx + 0x10]
xor ecx, ecx
inc ecx
and edx, ecx
test edi, edi
jne 0x100953f3
mov al, bl
xor al, cl
test edx, edx
movzx ecx, al
movzx eax, bl
cmovne ecx, eax
mov bl, cl
mov edi, dword [esp + 0x14]
test bl, bl
je 0x10095474
cmp dword [esp + 0x30], 0x10000
mov esi, dword [esp + 0x50]
sbb eax, eax
add eax, 2
add edi, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], edi
push 0
pop ebx
cmp edi, eax
jl 0x100950f5
jmp 0x10095478
test edx, edx
jne 0x10095416
mov ecx, eax
inc edx
shr eax, 3
and ecx, 7
shl edx, cl
and dl, byte [eax + edi]
mov al, bl
xor al, 1
test dl, dl
movzx ecx, al
movzx eax, bl
cmove ecx, eax
jmp 0x100953ba
shr eax, 8
mov dl, byte [eax + edi]
cmp dl, 0xff
jne 0x10095425
xor bl, cl
jmp 0x100953bc
test dl, dl
je 0x100953bc
mov eax, dword [esp + 0x30]
movzx ecx, al
xor eax, eax
movzx esi, dl
inc eax
add esi, 7
mov edx, ecx
shl esi, 5
and ecx, 7
shr edx, 3
add esi, edi
shl eax, cl
test byte [edx + esi], al
je 0x100953bc
xor bl, 1
jmp 0x100953bc
push eax
push dword [ecx]
call sym.CoreFoundation.dll_CFCharacterSetIsLongCharacterMember
mov ebp, dword [esp + 0x144]
test al, al
pop ecx
pop ecx
setne bl
jmp 0x100953c0
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x4c]
jmp 0x10095482
mov eax, dword [esp + 0x28]
cmp byte [esp + 0x57], 0
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
jne 0x100954e8
test edx, edx
je 0x100954e8
test edi, edi
je 0x100954e8
cmp ebp, ebx
jne 0x100954e8
cmp esi, eax
jne 0x100954e8
mov edi, dword [esp + 0x88]
mov ecx, ebx
sub ecx, dword [esp + 0x7c]
sub eax, edi
push edx
push dword [esp + 0x3fc]
push eax
push edi
lea eax, [esp + 0xc0]
push eax
push ecx
push dword [esp + 0x94]
lea eax, [esp + 0x164]
push eax
call fcn.10001b36
mov edx, dword [esp + 0x44]
add esp, 0x20
mov edi, eax
cmp byte [esp + 0x13], 0
je 0x100954fa
test edx, edx
je 0x100954fa
push edx
call sym.CoreFoundation.dll_CFRelease
pop ecx
cmp esi, dword [esp + 0x28]
push 0xffffffffffffffff
pop eax
cmovl edi, eax
cmp ebp, ebx
push 1
pop eax
cmovl edi, eax
mov eax, edi
mov ecx, dword [esp + 0x3e0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1000234c
add esp, 0x3d4
ret