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

Disassembly:
jmp 0x10093bbe
sub esp, 0x3d4
mov eax, dword [0x101844f8]
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 0x10093cc0
test eax, eax
jne 0x10093cca
call sym.CoreFoundation.dll_CFLocaleCopyCurrent
mov dword [esp + 0x24], eax
mov byte [esp + 0x13], 1
test eax, eax
jne 0x10093cca
mov dword [esp + 0x70], ebx
jmp 0x10093cd5
push eax
call fcn.1008b778
pop ecx
mov dword [esp + 0x70], eax
push dword [esp + 0x3f8]
lea eax, [esp + 0xa0]
push eax
call fcn.100901df
pop ecx
pop ecx
test al, al
je 0x10093d01
lea eax, [esp + 0x9c]
mov byte [esp + 0x3f], 1
mov dword [esp + 0x50], eax
jmp 0x10093d03
mov eax, ebx
or ecx, 0xffffffff
cmp dword [esp + 0x24], ebx
jne 0x10093f87
test eax, eax
jne 0x10093f87
cmp byte [esp + 0x8c], bl
jne 0x10093f87
mov edi, dword [sym.CoreFoundation.dll___CFDefaultEightBitStringEncoding]
cmp edi, ecx
jne 0x10093d3a
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 0x10093ec8
test edx, edx
je 0x10093ec8
and dword [esp + 0x3f8], 0xffffffef
cmp edi, 0x600
jne 0x10093dc5
cmp byte [esp + 0x64], bl
jne 0x10093dc5
cmp byte [esp + 0x1e], bl
je 0x10093f46
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 0x10093db1
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 0x10095500
cmp byte [esp + 0x1e], bl
jne 0x10093dd5
cmp byte [esp + 0x68], bl
je 0x10093f46
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 0x10093ec4
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 0x10093e6f
cmp edi, 0x80
jae 0x10093e91
cmp ecx, 0x80
jae 0x10093e91
cmp byte [esp + 0x64], bl
je 0x10093e40
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x44], ebx
jne 0x10093e40
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 0x10093e67
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 0x10093e67
add ecx, 0x20
cmp edi, ecx
jne 0x10094d4e
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 0x10093e97
mov edi, dword [esp + 0x80]
jmp 0x10093e01
mov edi, dword [esp + 0x4c]
mov esi, ebx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], edi
cmp edi, eax
jne 0x10093f46
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 0x10095500
mov edi, ebx
jmp 0x10093e9b
cmp byte [esp + 0x3f], bl
jne 0x10093f46
test esi, esi
jne 0x10093f4a
test edx, edx
jne 0x10093f83
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 0x10093f83
test edx, edx
je 0x10093f46
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 0x10093f2a
movzx eax, word [edx + ecx]
movzx ebx, word [ecx]
add ecx, 2
sub ebx, eax
je 0x10093f18
test ebx, ebx
jne 0x10093f32
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 0x10095500
test esi, esi
je 0x10093f83
test edx, edx
je 0x10093f83
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 fcn.101331bb
mov ecx, eax
add esp, 0xc
test ecx, ecx
jne 0x10093db1
mov ecx, ebx
sub ecx, edi
jmp 0x10093db1
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 0x10094020
mov dword [esp + 0x30], ebp
mov dword [esp + 0x6c], esi
cmp byte [esp + 0x64], bl
je 0x10094020
and dword [esp + 0x3f8], 0xffffff7f
mov byte [esp + 0x68], bl
cmp ebp, edi
jge 0x10094524
mov ecx, ebx
cmp esi, dword [esp + 0x28]
jge 0x10094524
test ecx, ecx
jne 0x10094124
mov edx, dword [esp + 0x1cc]
test edx, edx
je 0x1009406b
test ebp, ebp
js 0x100940e3
cmp ebp, dword [esp + 0x1d4]
jge 0x100940e3
mov eax, dword [esp + 0x1d0]
add eax, ebp
movzx eax, word [edx + eax*2]
jmp 0x100940e5
cmp ebp, dword [esp + 0x1dc]
jge 0x1009407d
cmp ebp, dword [esp + 0x1d8]
jge 0x100940d0
test ebp, ebp
js 0x100940e3
mov eax, dword [esp + 0x1d4]
cmp ebp, eax
jge 0x100940e3
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 0x100940e5
mov eax, ebx
movzx eax, ax
mov dword [esp + 0x20], eax
cmp byte [esp + 0x1e], bl
je 0x1009411a
cmp eax, 0x41
jb 0x1009411a
cmp eax, 0x5a
ja 0x1009411a
cmp dword [esp + 0x70], ebx
je 0x10094107
cmp eax, 0x49
je 0x1009411a
cmp byte [esp + 0x64], bl
je 0x10094113
cmp dword [esp + 0x44], ebx
je 0x1009411a
add eax, 0x20
mov dword [esp + 0x20], eax
mov dword [esp + 0x60], 1
jmp 0x10094138
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 0x1009422a
mov edx, dword [esp + 0x134]
test edx, edx
je 0x10094171
test esi, esi
js 0x100941e9
cmp esi, dword [esp + 0x13c]
jge 0x100941e9
mov eax, dword [esp + 0x138]
add eax, esi
movzx eax, word [edx + eax*2]
jmp 0x100941eb
cmp esi, dword [esp + 0x144]
jge 0x10094183
cmp esi, dword [esp + 0x140]
jge 0x100941d6
test esi, esi
js 0x100941e9
mov eax, dword [esp + 0x13c]
cmp esi, eax
jge 0x100941e9
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 0x100941eb
mov eax, ebx
movzx eax, ax
mov dword [esp + 0x2c], eax
cmp byte [esp + 0x1e], bl
je 0x10094220
cmp eax, 0x41
jb 0x10094220
cmp eax, 0x5a
ja 0x10094220
cmp dword [esp + 0x70], ebx
je 0x1009420d
cmp eax, 0x49
je 0x10094220
cmp byte [esp + 0x64], bl
je 0x10094219
cmp dword [esp + 0x44], ebx
je 0x10094220
add eax, 0x20
mov dword [esp + 0x2c], eax
mov dword [esp + 0x5c], 1
jmp 0x1009423e
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 0x10094574
test edx, edx
jne 0x10094574
cmp ecx, 0x39
ja 0x10094574
cmp ecx, 0x30
jb 0x10094574
cmp dword [esp + 0x40], ebx
jne 0x10094574
cmp eax, 0x39
ja 0x10094574
cmp eax, 0x30
jb 0x10094574
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 0x100942c1
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 0x10094316
test ebp, ebp
js 0x1009438e
cmp ebp, dword [esp + 0x1d4]
jge 0x1009438e
mov eax, dword [esp + 0x1d0]
add eax, ebp
movzx eax, word [edx + eax*2]
jmp 0x10094390
cmp ebp, dword [esp + 0x1dc]
jge 0x10094328
cmp ebp, dword [esp + 0x1d8]
jge 0x1009437b
test ebp, ebp
js 0x1009438e
mov eax, dword [esp + 0x1d4]
cmp ebp, eax
jge 0x1009438e
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 0x10094390
mov eax, ebx
movzx ecx, ax
cmp ecx, 0x39
ja 0x100943a1
cmp ecx, 0x30
jae 0x100942bd
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 0x10094416
test esi, esi
js 0x10094495
cmp esi, dword [esp + 0x13c]
jge 0x10094495
mov eax, dword [esp + 0x138]
add eax, esi
movzx eax, word [edx + eax*2]
jmp 0x10094497
cmp esi, dword [esp + 0x144]
jge 0x10094428
cmp esi, dword [esp + 0x140]
jge 0x10094482
test esi, esi
js 0x10094495
mov eax, dword [esp + 0x13c]
cmp esi, eax
jge 0x10094495
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 0x10094497
mov eax, ebx
movzx eax, ax
cmp eax, 0x39
ja 0x100944a8
cmp eax, 0x30
jae 0x100943b7
mov eax, dword [esp + 0x34]
cmp eax, ebp
mov edx, dword [esp + 0x20]
mov dword [esp + 0x80], ebp
mov ebp, dword [esp + 0x4c]
jne 0x10094d03
cmp edx, ecx
jne 0x10094d05
cmp byte [esp + 0x64], bl
je 0x10094514
cmp dword [esp + 0x44], ebx
jne 0x10094514
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 0x10094514
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 0x1009402a
mov esi, dword [esp + 0x50]
cmp byte [esp + 0x68], bl
jne 0x10094536
test esi, esi
je 0x10095470
cmp ebp, edi
jge 0x100950d0
mov edx, dword [esp + 0x1cc]
test edx, edx
je 0x10094e96
test ebp, ebp
js 0x10094f0e
cmp ebp, dword [esp + 0x1d4]
jge 0x10094f0e
mov eax, dword [esp + 0x1d0]
add eax, ebp
movzx eax, word [edx + eax*2]
jmp 0x10094f10
cmp ecx, eax
je 0x10094ca2
cmp byte [esp + 0x3f], bl
je 0x10094e3a
cmp byte [esp + 0x64], bl
je 0x100945b1
cmp dword [esp + 0x44], ebx
jne 0x100945b1
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 0x100945da
cmp eax, edx
jae 0x100945da
cmp dword [esp + 0x50], ebx
jne 0x100945da
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x10094d59
cmp byte [esp + 0x1e], bl
je 0x10094d4c
movzx ecx, cx
mov edx, 0x3ff
mov dword [esp + 0x74], ecx
lea eax, [ecx + 0x2800]
cmp ax, dx
ja 0x100946e1
mov edx, dword [esp + 0x1cc]
lea esi, [ebp + 1]
test edx, edx
je 0x10094627
test esi, esi
js 0x100946d8
cmp esi, dword [esp + 0x1d4]
jge 0x100946d8
mov eax, dword [esp + 0x1d0]
add eax, esi
movzx edx, word [edx + eax*2]
jmp 0x100946a6
cmp esi, dword [esp + 0x1dc]
jge 0x10094639
cmp esi, dword [esp + 0x1d8]
jge 0x10094693
test esi, esi
js 0x100946a4
mov eax, dword [esp + 0x1d4]
cmp esi, eax
jge 0x100946a4
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 0x100946a6
mov edx, ebx
mov esi, 0x3ff
lea eax, [edx + 0x2400]
cmp ax, si
mov esi, dword [esp + 0x14]
ja 0x100946dc
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 0x100946dc
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 0x100947d6
mov edx, dword [esp + 0x134]
inc esi
test edx, edx
je 0x1009472b
test esi, esi
js 0x100947d6
cmp esi, dword [esp + 0x13c]
jge 0x100947d6
mov eax, dword [esp + 0x138]
add eax, esi
movzx edx, word [edx + eax*2]
jmp 0x100947aa
cmp esi, dword [esp + 0x144]
jge 0x1009473d
cmp esi, dword [esp + 0x140]
jge 0x10094797
test esi, esi
js 0x100947a8
mov eax, dword [esp + 0x13c]
cmp esi, eax
jge 0x100947a8
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 0x100947aa
mov edx, ebx
lea eax, [edx + 0x2400]
mov esi, 0x3ff
cmp ax, si
ja 0x100947d6
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 0x10094a3f
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 0x1009483a
cmp eax, dword [ecx + 0xc]
jae 0x1009483a
cmp eax, 0xffff
ja 0x10094900
test esi, 2
jne 0x10094900
mov edi, dword [ecx + 0x10]
xor ecx, ecx
inc ecx
and esi, ecx
test edi, edi
jne 0x1009487e
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 0x10094914
mov edx, dword [esp + 0x38]
test edx, edx
jle 0x10094859
xor eax, eax
cmp dword [esp + 0x58], edx
cmove edx, eax
mov dword [esp + 0x38], edx
test edx, edx
jne 0x10094863
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 0x10094518
test esi, esi
jne 0x100948a9
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 0x10094834
shr eax, 8
mov al, byte [eax + edi]
mov byte [esp + 0x1f], al
cmp al, 0xff
jne 0x100948be
xor dl, cl
jmp 0x10094836
test al, al
je 0x10094836
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 0x1009483a
xor dl, 1
jmp 0x1009483a
push eax
push dword [ecx]
call sym.CoreFoundation.dll_CFCharacterSetIsLongCharacterMember
test al, al
pop ecx
pop ecx
setne dl
jmp 0x1009483a
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 0x100949f5
cmp eax, dword [ecx + 0xc]
jae 0x100949f5
cmp eax, 0xffff
ja 0x100949e6
test esi, 2
jne 0x100949e6
mov edi, dword [ecx + 0x10]
xor ecx, ecx
inc ecx
and esi, ecx
test edi, edi
jne 0x10094974
mov al, dl
xor al, cl
test esi, esi
movzx ecx, al
movzx eax, dl
cmovne ecx, eax
jmp 0x1009499d
test esi, esi
jne 0x100949a1
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 0x100949f5
shr eax, 8
mov al, byte [eax + edi]
mov byte [esp + 0x1f], al
cmp al, 0xff
jne 0x100949b3
xor dl, cl
jmp 0x100949f5
test al, al
je 0x100949f5
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 0x100949f5
xor dl, 1
jmp 0x100949f5
push eax
push dword [ecx]
call sym.CoreFoundation.dll_CFCharacterSetIsLongCharacterMember
test al, al
pop ecx
pop ecx
setne dl
test dl, dl
je 0x10094a3b
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x10094a10
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 0x10094a1e
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 0x1009451c
mov edi, dword [esp + 0x18]
cmp byte [esp + 0x68], bl
je 0x10094b22
test ebp, ebp
jle 0x10094b22
mov ecx, dword [esp + 0x38]
mov byte [esp + 0x56], bl
mov byte [esp + 0x1f], bl
test ecx, ecx
jne 0x10094aae
mov eax, dword [esp + 0x20]
cmp eax, 0x10000
jae 0x10094a72
mov esi, dword [esp + 0x78]
jmp 0x10094a85
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 0x10094aae
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 0x10094ab2
mov cl, 1
mov dword [esp + 0x20], eax
mov byte [esp + 0x56], cl
jmp 0x10094ab2
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x40], ebx
jne 0x10094afe
cmp eax, 0x10000
jae 0x10094ac5
mov esi, dword [esp + 0x78]
jmp 0x10094ad8
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 0x10094afe
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 0x10094afe
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 0x10094b22
test al, al
je 0x10094b16
mov eax, dword [esp + 0x5c]
sub dword [esp + 0x14], eax
test cl, cl
je 0x10094b22
sub ebp, dword [esp + 0x60]
mov dword [esp + 0x4c], ebp
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
cmp ecx, eax
je 0x10094c15
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x70]
test edx, edx
jne 0x10094b9c
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.10090259
mov edx, eax
add esp, 0x20
mov dword [esp + 0x38], edx
test edx, edx
jle 0x10094b86
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x58], 1
jmp 0x10094b8a
mov ecx, dword [esp + 0x20]
test edx, edx
jne 0x10094b98
cmp dword [esp + 0x40], ebx
jg 0x10094d9a
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x40], ebx
jne 0x10094c15
test edx, edx
je 0x10094baa
cmp ecx, eax
je 0x10094c15
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.10090259
mov ecx, eax
add esp, 0x20
mov dword [esp + 0x40], ecx
test ecx, ecx
jle 0x10094bf2
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x48], 1
jmp 0x10094bf6
mov eax, dword [esp + 0x2c]
test ecx, ecx
mov ecx, dword [esp + 0x20]
je 0x10094c02
cmp ecx, eax
je 0x10094c19
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x10094dae
cmp ecx, eax
jmp 0x10094da6
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
test edx, edx
jle 0x10094cb5
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x40], ebx
jle 0x10094ca6
cmp ecx, edx
jge 0x10094ca6
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x48]
cmp eax, edi
jge 0x10094c5f
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + ecx*4 + 0x1e0]
cmp eax, dword [esp + ebp*4 + 0x2e0]
mov eax, ebp
jne 0x10094c5f
inc ecx
inc eax
mov dword [esp + 0x48], eax
cmp ecx, edx
jl 0x10094c3b
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x58], ecx
cmp ecx, edx
jge 0x10094ca6
cmp eax, dword [esp + 0x40]
jge 0x10094ca6
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x10094df2
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 0x10094e2c
mov ecx, dword [esp + 0x58]
test edx, edx
jle 0x10094cb5
xor eax, eax
cmp ecx, edx
cmove edx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x10094cca
xor ecx, ecx
cmp dword [esp + 0x48], eax
cmove eax, ecx
mov dword [esp + 0x40], eax
test edx, edx
jne 0x10094cd6
add ebp, dword [esp + 0x60]
mov dword [esp + 0x4c], ebp
test eax, eax
jne 0x10094ce2
add esi, dword [esp + 0x5c]
mov dword [esp + 0x14], esi
test edx, edx
jne 0x10094518
mov ecx, dword [esp + 0x38]
test eax, eax
jne 0x1009451c
mov dword [esp + 0x30], ebp
mov dword [esp + 0x6c], esi
jmp 0x1009451c
cmp edx, ecx
ja 0x10094d2f
jb 0x10094d12
cmp eax, dword [esp + 0x80]
jae 0x10094d2f
cmp byte [esp + 0x13], bl
je 0x10094d27
mov eax, dword [esp + 0x24]
test eax, eax
je 0x10094d27
push eax
call sym.CoreFoundation.dll_CFRelease
pop ecx
or eax, 0xffffffff
jmp 0x10095500
cmp byte [esp + 0x13], bl
je 0x10094d44
mov eax, dword [esp + 0x24]
test eax, eax
je 0x10094d44
push eax
call sym.CoreFoundation.dll_CFRelease
pop ecx
xor eax, eax
inc eax
jmp 0x10095500
cmp ecx, eax
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x10095500
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 0x10094e8f
push dword [esp + 0x24]
jmp 0x10094e89
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x10094dae
cmp ecx, dword [esp + 0x2c]
sbb esi, esi
and esi, 0xfffffffe
inc esi
jmp 0x10094de8
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 0x10094e82
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 0x10094e8f
test ecx, ecx
je 0x10094e8f
push ecx
jmp 0x10094e89
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x10094e4c
cmp ecx, eax
sbb esi, esi
and esi, 0xfffffffe
inc esi
jmp 0x10094e7e
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 0x10094e8f
test edx, edx
je 0x10094e8f
push edx
call sym.CoreFoundation.dll_CFRelease
pop ecx
mov eax, esi
jmp 0x10095500
cmp ebp, dword [esp + 0x1dc]
jge 0x10094ea8
cmp ebp, dword [esp + 0x1d8]
jge 0x10094efb
test ebp, ebp
js 0x10094f0e
mov eax, dword [esp + 0x1d4]
cmp ebp, eax
jge 0x10094f0e
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 0x10094f10
mov eax, ebx
movzx ecx, ax
mov dword [esp + 0x30], ecx
cmp ecx, 0x80
jae 0x10094f27
test esi, esi
je 0x100950ce
add eax, 0x2800
mov edx, 0x3ff
cmp ax, dx
ja 0x1009500a
mov edx, dword [esp + 0x1cc]
lea esi, [ebp + 1]
test edx, edx
je 0x10094f6c
test esi, esi
js 0x1009500a
cmp esi, dword [esp + 0x1d4]
jge 0x1009500a
mov eax, dword [esp + 0x1d0]
add eax, esi
movzx edx, word [edx + eax*2]
jmp 0x10094fe8
cmp esi, dword [esp + 0x1dc]
jge 0x10094f7e
cmp esi, dword [esp + 0x1d8]
jge 0x10094fd5
test esi, esi
js 0x10094fe6
mov eax, dword [esp + 0x1d4]
cmp esi, eax
jge 0x10094fe6
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 0x10094fe8
mov edx, ebx
lea eax, [edx + 0x2400]
mov esi, 0x3ff
cmp ax, si
ja 0x1009500a
shl ecx, 0xa
movzx eax, dx
add ecx, 0xfca02400
add ecx, eax
mov dword [esp + 0x30], ecx
cmp byte [esp + 0x68], 0
je 0x1009504d
cmp ecx, 0x10000
jae 0x1009501f
mov esi, dword [esp + 0x78]
jmp 0x10095034
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 0x1009504d
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 0x100950af
mov esi, dword [esp + 0x50]
test esi, esi
je 0x100950ce
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 0x100950a9
cmp eax, dword [esi + 0xc]
jae 0x100950a9
cmp eax, 0xffff
ja 0x1009518c
test edx, 2
jne 0x1009518c
mov edi, dword [esi + 0x10]
and edx, ecx
test edi, edi
jne 0x10095118
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 0x100950ce
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 0x1009453e
xor ebx, ebx
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
cmp edi, eax
jge 0x10095474
mov ebp, dword [esp + 0x13c]
mov edx, dword [esp + 0x134]
test edx, edx
je 0x100951a0
test edi, edi
js 0x10095218
cmp edi, ebp
jge 0x10095218
mov eax, dword [esp + 0x138]
add eax, edi
movzx eax, word [edx + eax*2]
jmp 0x1009521a
test edx, edx
jne 0x1009513e
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 0x100950a3
shr eax, 8
mov dl, byte [eax + edi]
cmp dl, 0xff
jne 0x10095150
xor bl, cl
jmp 0x100950a5
test dl, dl
je 0x100950a5
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 0x100950a5
xor bl, 1
jmp 0x100950a5
push eax
push dword [esi]
call sym.CoreFoundation.dll_CFCharacterSetIsLongCharacterMember
test al, al
pop ecx
pop ecx
setne bl
jmp 0x100950a9
cmp edi, dword [esp + 0x144]
jge 0x100951b2
cmp edi, dword [esp + 0x140]
jge 0x10095205
test edi, edi
js 0x10095218
cmp edi, ebp
jge 0x10095218
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 0x1009521a
mov eax, ebx
movzx ecx, ax
mov dword [esp + 0x30], ecx
cmp ecx, 0x80
jae 0x10095231
test esi, esi
je 0x10095466
add eax, 0x2800
mov edx, 0x3ff
cmp ax, dx
ja 0x1009530b
mov edx, dword [esp + 0x134]
lea esi, [edi + 1]
test edx, edx
je 0x10095271
test esi, esi
js 0x1009530b
cmp esi, ebp
jge 0x1009530b
mov eax, dword [esp + 0x138]
add eax, esi
movzx ebx, word [edx + eax*2]
jmp 0x100952e9
cmp esi, dword [esp + 0x144]
jge 0x10095283
cmp esi, dword [esp + 0x140]
jge 0x100952da
test esi, esi
js 0x100952e9
cmp esi, ebp
jge 0x100952e9
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 0x1009530b
shl ecx, 0xa
movzx eax, bx
add ecx, 0xfca02400
add ecx, eax
mov dword [esp + 0x30], ecx
cmp byte [esp + 0x68], 0
je 0x10095355
cmp ecx, 0x10000
jae 0x10095320
mov esi, dword [esp + 0x78]
jmp 0x1009533c
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 0x10095355
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 0x100953ba
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x10095466
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 0x100953b2
cmp eax, dword [ecx + 0xc]
jae 0x100953b2
cmp eax, 0xffff
ja 0x1009544b
test edx, 2
jne 0x1009544b
mov edi, dword [ecx + 0x10]
xor ecx, ecx
inc ecx
and edx, ecx
test edi, edi
jne 0x100953e5
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 0x10095466
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 0x100950e7
jmp 0x1009546a
test edx, edx
jne 0x10095408
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 0x100953ac
shr eax, 8
mov dl, byte [eax + edi]
cmp dl, 0xff
jne 0x10095417
xor bl, cl
jmp 0x100953ae
test dl, dl
je 0x100953ae
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 0x100953ae
xor bl, 1
jmp 0x100953ae
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 0x100953b2
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x4c]
jmp 0x10095474
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 0x100954da
test edx, edx
je 0x100954da
test edi, edi
je 0x100954da
cmp ebp, ebx
jne 0x100954da
cmp esi, eax
jne 0x100954da
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 0x100954ec
test edx, edx
je 0x100954ec
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