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

Disassembly:
sub esp, 0x250
mov eax, dword [0x101844f8]
xor eax, esp
mov dword [esp + 0x24c], eax
mov eax, dword [esp + 0x258]
push ebx
mov ebx, dword [esp + 0x268]
push ebp
push esi
push edi
mov edi, dword [esp + 0x27c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x278]
push eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x58], edi
call sym.CoreFoundation.dll_CFStringGetLength
mov ebp, eax
xor eax, eax
push eax
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
mov esi, eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x2c], eax
mov byte [esp + 0x1f], al
mov dword [esp + 0x20], esi
call sym.CoreFoundation.dll_CFStringCreateMutable
push 0x106
push eax
mov dword [esp + 0x40], eax
call fcn.100033e1
push dword [sym.CoreFoundation.dll_kCFAllocatorNull]
xor eax, eax
push eax
push eax
push eax
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFStringCreateMutableWithExternalCharactersNoCopy
push dword [esp + 0x294]
mov dword [esp + 0x6c], eax
push dword [esp + 0x298]
push dword [esp + 0x78]
push eax
call sym.CoreFoundation.dll_CFStringSetExternalCharactersNoCopy
push dword [esp + 0x78]
push dword [esp + 0x68]
call sym.CoreFoundation.dll_CFStringReplaceAll
add esp, 0x40
push esi
push dword [esp + 0x30]
call fcn.1002481d
push eax
mov dword [esp + 0x44], eax
call sym.CoreFoundation.dll_CFArrayGetCount
add esp, 0xc
mov dword [esp + 0x44], eax
test ebx, ebx
je 0x10027df8
push dword [sym.CoreFoundation.dll_kCFBundleLocalizationsKey]
push ebx
call sym.CoreFoundation.dll_CFDictionaryGetValue
mov esi, eax
mov dword [esp + 0x1c], esi
pop ecx
pop ecx
test esi, esi
je 0x10027df8
push esi
call sym.CoreFoundation.dll_CFGetTypeID
pop ecx
mov esi, eax
call sym.CoreFoundation.dll_CFArrayGetTypeID
cmp esi, eax
je 0x10027de3
push dword [sym.CoreFoundation.dll_kCFBundleLocalizationsKey]
xor esi, esi
push ebx
mov dword [esp + 0x1c], esi
call sym.CoreFoundation.dll_CFDictionaryRemoveValue
pop ecx
pop ecx
jmp 0x10027de7
mov esi, dword [esp + 0x14]
test esi, esi
je 0x10027df8
push esi
call sym.CoreFoundation.dll_CFArrayGetCount
pop ecx
mov dword [esp + 0x30], eax
jmp 0x10027dfd
and dword [esp + 0x30], 0
mov eax, 0xff
cmp ebp, eax
cmovg ebp, eax
lea eax, [esp + 0x5c]
push eax
push ebp
push 0
push dword [esp + 0x28]
call sym.CoreFoundation.dll_CFStringGetCharacters
mov eax, dword [esp + 0x27c]
push ebp
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x70]
push eax
push 0x106
lea eax, [esp + 0x288]
push eax
push ebp
call sym.CoreFoundation.dll__CFAppendPathComponent
xor ebx, ebx
add esp, 0x24
inc ebx
test al, al
je 0x10027f17
push dword [0x10186c04]
lea eax, [esp + 0x270]
push dword [0x10186c00]
push 0x106
push eax
push ebp
call sym.CoreFoundation.dll__CFAppendPathExtension
add esp, 0x14
test al, al
je 0x10027f17
mov eax, dword [esp + 0x26c]
mov ecx, dword [esp + 0x28]
sub eax, ecx
dec eax
push eax
push eax
lea eax, [ecx*2 + 2]
add eax, ebp
mov ebp, dword [esp + 0x48]
push eax
push ebp
call sym.CoreFoundation.dll_CFStringSetExternalCharactersNoCopy
push ebp
push dword [esp + 0x40]
call sym.CoreFoundation.dll_CFStringReplaceAll
mov ebp, dword [esp + 0x34]
add esp, 0x18
test esi, esi
je 0x10027ec5
push ebp
push dword [esp + 0x34]
push 0
push esi
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x10
test al, al
jne 0x10027ee2
cmp byte [esp + 0x270], 4
je 0x10027f17
push dword [esp + 0x2c]
push dword [esp + 0x3c]
call fcn.100275c2
pop ecx
pop ecx
test al, al
je 0x10027f17
push edi
call sym.CoreFoundation.dll_CFArrayGetCount
push ebp
push eax
push 0
push edi
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x14
test al, al
jne 0x10027f02
push ebp
push edi
call sym.CoreFoundation.dll_CFArrayAppendValue
pop ecx
pop ecx
push ebp
mov byte [esp + 0x17], bl
call sym.CoreFoundation.dll_CFStringGetLength
pop ecx
cmp eax, 2
jg 0x10027f75
jmp 0x100288bd
test esi, esi
je 0x10027f26
push esi
call sym.CoreFoundation.dll_CFArrayGetCount
pop ecx
test eax, eax
jne 0x10027f71
mov edi, dword [esp + 0x44]
xor bl, bl
xor ebp, ebp
cmp ebp, edi
jge 0x10027f62
push ebp
push dword [esp + 0x3c]
call sym.CoreFoundation.dll_CFArrayGetValueAtIndex
push str..lproj
mov esi, eax
call sym.CoreFoundation.dll___CFStringMakeConstantString
push eax
push esi
call sym.CoreFoundation.dll_CFStringHasSuffix
add esp, 0x14
movzx ebx, bl
test al, al
push 1
pop eax
cmovne ebx, eax
inc ebp
test bl, bl
je 0x10027f2e
mov edi, dword [esp + 0x54]
test bl, bl
jne 0x10027f71
xor bl, bl
jmp 0x100288bd
mov ebp, dword [esp + 0x1c]
xor esi, esi
push ebp
mov dword [esp + 0x28], esi
call sym.CoreFoundation.dll_CFStringGetLength
mov ebx, eax
pop ecx
cmp ebx, 4
jl 0x10028100
push 2
push ebp
call sym.CoreFoundation.dll_CFStringGetCharacterAtIndex
pop ecx
pop ecx
movzx esi, ax
push 0x2d
pop eax
cmp ax, si
je 0x10027fae
push 0x5f
pop eax
cmp ax, si
jne 0x10028106
push ebp
push ebx
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFStringCreateMutableCopy
push 0x2d
pop edx
mov dword [esp + 0x30], eax
cmp dx, si
mov ecx, 0x101398f0
mov eax, 0x1013d49c
cmovne eax, ecx
push eax
call sym.CoreFoundation.dll___CFStringMakeConstantString
mov esi, dword [esp + 0x34]
push eax
push 1
push 2
push esi
call sym.CoreFoundation.dll_CFStringReplace
add esp, 0x20
test esi, esi
je 0x10028100
push esi
call sym.CoreFoundation.dll_CFStringGetLength
mov esi, eax
mov eax, 0xff
cmp esi, eax
cmovg esi, eax
lea eax, [esp + 0x60]
push eax
push esi
push 0
push dword [esp + 0x34]
call sym.CoreFoundation.dll_CFStringGetCharacters
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x5c]
push esi
mov dword [esp + 0x284], eax
mov esi, 0x106
lea eax, [esp + 0x74]
push eax
push esi
lea eax, [esp + 0x28c]
push eax
push ebx
call sym.CoreFoundation.dll__CFAppendPathComponent
add esp, 0x28
test al, al
je 0x10028106
push dword [0x10186c04]
lea eax, [esp + 0x270]
push dword [0x10186c00]
push esi
push eax
push ebx
call sym.CoreFoundation.dll__CFAppendPathExtension
add esp, 0x14
test al, al
je 0x10028106
mov eax, dword [esp + 0x26c]
mov ecx, dword [esp + 0x28]
sub eax, ecx
dec eax
inc ecx
push eax
push eax
lea eax, [ebx + ecx*2]
mov ebx, dword [esp + 0x48]
push eax
push ebx
call sym.CoreFoundation.dll_CFStringSetExternalCharactersNoCopy
mov esi, dword [esp + 0x3c]
push ebx
push esi
call sym.CoreFoundation.dll_CFStringReplaceAll
mov ebx, dword [esp + 0x2c]
add esp, 0x18
test ebx, ebx
je 0x100280bb
push dword [esp + 0x24]
push dword [esp + 0x34]
push 0
push ebx
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x10
test al, al
jne 0x100280d5
cmp byte [esp + 0x270], 4
je 0x1002810a
push esi
push dword [esp + 0x3c]
call fcn.100275c2
pop ecx
pop ecx
test al, al
je 0x1002810a
push edi
call sym.CoreFoundation.dll_CFArrayGetCount
mov esi, dword [esp + 0x28]
push esi
push eax
push 0
push edi
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x14
test al, al
jne 0x100280f9
push esi
push edi
call sym.CoreFoundation.dll_CFArrayAppendValue
pop ecx
pop ecx
mov byte [esp + 0x13], 1
jmp 0x1002810e
mov ebx, dword [esp + 0x14]
jmp 0x1002810e
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
push ebp
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFLocaleCreateCanonicalLanguageIdentifierFromString
mov ebp, eax
mov dword [esp + 0x60], ebp
pop ecx
pop ecx
test ebp, ebp
je 0x100283f9
push ebp
call fcn.10026630
push ebp
push dword [esp + 0x24]
mov byte [esp + 0x4b], al
call sym.CoreFoundation.dll_CFEqual
add esp, 0xc
test al, al
jne 0x1002825f
test esi, esi
je 0x1002815e
push ebp
push esi
call sym.CoreFoundation.dll_CFEqual
pop ecx
pop ecx
test al, al
jne 0x1002825f
push ebp
call sym.CoreFoundation.dll_CFStringGetLength
mov esi, eax
mov eax, 0xff
cmp esi, eax
cmovg esi, eax
lea eax, [esp + 0x60]
push eax
push esi
push 0
push ebp
call sym.CoreFoundation.dll_CFStringGetCharacters
mov eax, dword [esp + 0x3c]
push esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x284], eax
lea eax, [esp + 0x74]
push eax
push 0x106
lea eax, [esp + 0x28c]
push eax
push esi
call sym.CoreFoundation.dll__CFAppendPathComponent
add esp, 0x28
test al, al
je 0x1002825f
push dword [0x10186c04]
lea eax, [esp + 0x270]
push dword [0x10186c00]
push 0x106
push eax
push esi
call sym.CoreFoundation.dll__CFAppendPathExtension
add esp, 0x14
test al, al
je 0x1002825f
mov eax, dword [esp + 0x26c]
mov ecx, dword [esp + 0x28]
sub eax, ecx
dec eax
inc ecx
push eax
push eax
lea eax, [esi + ecx*2]
mov esi, dword [esp + 0x48]
push eax
push esi
call sym.CoreFoundation.dll_CFStringSetExternalCharactersNoCopy
push esi
mov esi, dword [esp + 0x40]
push esi
call sym.CoreFoundation.dll_CFStringReplaceAll
add esp, 0x18
test ebx, ebx
je 0x10028220
push ebp
push dword [esp + 0x34]
push 0
push ebx
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x10
test al, al
jne 0x1002823a
cmp byte [esp + 0x270], 4
je 0x1002825f
push esi
push dword [esp + 0x3c]
call fcn.100275c2
pop ecx
pop ecx
test al, al
je 0x1002825f
push edi
call sym.CoreFoundation.dll_CFArrayGetCount
push ebp
push eax
push 0
push edi
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x14
test al, al
jne 0x1002825a
push ebp
push edi
call sym.CoreFoundation.dll_CFArrayAppendValue
pop ecx
pop ecx
mov byte [esp + 0x13], 1
mov ebx, sym.CoreFoundation.dll_kCFTypeDictionaryValueCallBacks
mov esi, sym.CoreFoundation.dll_kCFTypeDictionaryKeyCallBacks
push ebx
push esi
push 0
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFDictionaryCreateMutable
push ebx
push esi
push 0
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
mov dword [esp + 0x70], eax
call sym.CoreFoundation.dll_CFDictionaryCreateMutable
xor esi, esi
mov dword [esp + 0x40], eax
add esp, 0x20
cmp dword [esp + 0x44], esi
jle 0x10028323
mov edi, dword [esp + 0x44]
mov ebp, dword [esp + 0x50]
push esi
push dword [esp + 0x3c]
call sym.CoreFoundation.dll_CFArrayGetValueAtIndex
push str..lproj
mov ebx, eax
call sym.CoreFoundation.dll___CFStringMakeConstantString
push eax
push ebx
call sym.CoreFoundation.dll_CFStringHasSuffix
add esp, 0x14
test al, al
je 0x10028316
push ebx
call sym.CoreFoundation.dll_CFStringGetLength
sub eax, 6
push eax
push 0
push ebx
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFStringCreateWithSubstring
mov ebx, eax
push ebx
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFLocaleCreateCanonicalLanguageIdentifierFromString
add esp, 0x1c
mov dword [esp + 0x44], eax
test eax, eax
je 0x1002830f
push ebx
push eax
push ebp
call sym.CoreFoundation.dll_CFDictionarySetValue
push dword [esp + 0x50]
call sym.CoreFoundation.dll_CFRelease
add esp, 0x10
push ebx
call sym.CoreFoundation.dll_CFRelease
pop ecx
inc esi
cmp esi, edi
jl 0x100282a6
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
xor esi, esi
cmp dword [esp + 0x30], esi
jle 0x10028377
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x30]
push esi
push edi
call sym.CoreFoundation.dll_CFArrayGetValueAtIndex
push eax
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
mov dword [esp + 0x54], eax
call sym.CoreFoundation.dll_CFLocaleCreateCanonicalLanguageIdentifierFromString
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x1002836a
push dword [esp + 0x44]
push ebx
push dword [esp + 0x28]
call sym.CoreFoundation.dll_CFDictionarySetValue
push ebx
call sym.CoreFoundation.dll_CFRelease
add esp, 0x10
inc esi
cmp esi, ebp
jl 0x10028333
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
push ebp
push dword [esp + 0x24]
call sym.CoreFoundation.dll_CFDictionaryGetValue
push ebp
push dword [esp + 0x5c]
mov esi, eax
call sym.CoreFoundation.dll_CFDictionaryGetValue
add esp, 0x10
mov ebx, eax
test esi, esi
je 0x100283bb
push edi
call sym.CoreFoundation.dll_CFArrayGetCount
push esi
push eax
push 0
push edi
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x14
test al, al
jne 0x100283b6
push esi
push edi
call sym.CoreFoundation.dll_CFArrayAppendValue
pop ecx
pop ecx
mov byte [esp + 0x13], 1
cmp byte [esp + 0x270], 4
je 0x100283ee
test ebx, ebx
je 0x100283ee
push edi
call sym.CoreFoundation.dll_CFArrayGetCount
push ebx
push eax
push 0
push edi
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x14
test al, al
jne 0x100283e9
push ebx
push edi
call sym.CoreFoundation.dll_CFArrayAppendValue
pop ecx
pop ecx
mov byte [esp + 0x13], 1
cmp byte [esp + 0x3f], 0
jne 0x10028854
cmp byte [esp + 0x13], 0
jne 0x1002840e
cmp byte [esp + 0x280], 0
je 0x10028854
mov esi, dword [esp + 0x1c]
xor ebx, ebx
push esi
mov dword [esp + 0x50], ebx
call fcn.10025bc1
pop ecx
test eax, eax
js 0x10028432
push eax
call fcn.10024331
mov ebx, eax
pop ecx
mov dword [esp + 0x4c], ebx
jmp 0x1002846b
push esi
call sym.CoreFoundation.dll_CFStringGetLength
pop ecx
cmp eax, 2
je 0x10028452
jle 0x1002846b
push 2
push esi
call sym.CoreFoundation.dll_CFStringGetCharacterAtIndex
pop ecx
pop ecx
push 0x5f
pop ecx
cmp ax, cx
jne 0x1002846b
push 2
push 0
push esi
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFStringCreateWithSubstring
add esp, 0x10
mov dword [esp + 0x4c], eax
mov ebx, eax
test ebx, ebx
je 0x100285f6
push ebx
push esi
call sym.CoreFoundation.dll_CFEqual
pop ecx
pop ecx
test al, al
jne 0x100285f6
push ebx
call sym.CoreFoundation.dll_CFStringGetLength
mov esi, eax
mov eax, 0xff
cmp esi, eax
cmovg esi, eax
lea eax, [esp + 0x60]
push eax
push esi
push 0
push ebx
call sym.CoreFoundation.dll_CFStringGetCharacters
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x5c]
push esi
mov dword [esp + 0x284], eax
mov esi, 0x106
lea eax, [esp + 0x74]
push eax
push esi
lea eax, [esp + 0x28c]
push eax
push ebx
call sym.CoreFoundation.dll__CFAppendPathComponent
add esp, 0x28
test al, al
je 0x10028590
push dword [0x10186c04]
lea eax, [esp + 0x270]
push dword [0x10186c00]
push esi
push eax
push ebx
call sym.CoreFoundation.dll__CFAppendPathExtension
add esp, 0x14
test al, al
je 0x10028590
mov eax, dword [esp + 0x26c]
mov ecx, dword [esp + 0x28]
sub eax, ecx
dec eax
inc ecx
push eax
push eax
lea eax, [ebx + ecx*2]
mov ebx, dword [esp + 0x48]
push eax
push ebx
call sym.CoreFoundation.dll_CFStringSetExternalCharactersNoCopy
mov esi, dword [esp + 0x3c]
push ebx
push esi
call sym.CoreFoundation.dll_CFStringReplaceAll
mov ebx, dword [esp + 0x2c]
add esp, 0x18
test ebx, ebx
je 0x1002854a
push dword [esp + 0x4c]
push dword [esp + 0x34]
push 0
push ebx
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x10
test al, al
jne 0x10028564
cmp byte [esp + 0x270], 4
je 0x10028594
push esi
push dword [esp + 0x3c]
call fcn.100275c2
pop ecx
pop ecx
test al, al
je 0x10028594
push edi
call sym.CoreFoundation.dll_CFArrayGetCount
mov esi, dword [esp + 0x50]
push esi
push eax
push 0
push edi
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x14
test al, al
jne 0x10028588
push esi
push edi
call sym.CoreFoundation.dll_CFArrayAppendValue
pop ecx
pop ecx
mov al, 1
mov byte [esp + 0x13], al
jmp 0x10028598
mov ebx, dword [esp + 0x14]
mov al, byte [esp + 0x13]
mov esi, dword [esp + 0x1c]
test al, al
jne 0x100285ad
cmp byte [esp + 0x280], al
je 0x10028854
push esi
call fcn.10025bc1
pop ecx
test eax, eax
js 0x10028600
xor ecx, ecx
mov dword [esp + 0x34], ecx
cmp eax, 0x98
jge 0x10028614
mov eax, dword [eax*4 + 0x1013c3b0]
test eax, eax
je 0x10028614
cmp byte [eax], cl
je 0x10028614
push dword [sym.CoreFoundation.dll_kCFAllocatorNull]
push 0x600
push eax
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFStringCreateWithCStringNoCopy
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x34], ecx
jmp 0x10028614
mov ebx, dword [esp + 0x14]
mov al, byte [esp + 0x13]
jmp 0x1002859c
push esi
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFStringCreateCopy
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x34], eax
test ecx, ecx
je 0x1002873e
push ecx
push esi
call sym.CoreFoundation.dll_CFEqual
pop ecx
pop ecx
test al, al
jne 0x1002873e
push dword [esp + 0x34]
call sym.CoreFoundation.dll_CFStringGetLength
mov esi, eax
mov eax, 0xff
cmp esi, eax
cmovg esi, eax
lea eax, [esp + 0x60]
push eax
push esi
push 0
push dword [esp + 0x44]
call sym.CoreFoundation.dll_CFStringGetCharacters
mov eax, dword [esp + 0x3c]
push esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x284], eax
lea eax, [esp + 0x74]
push eax
push 0x106
lea eax, [esp + 0x28c]
push eax
push esi
call sym.CoreFoundation.dll__CFAppendPathComponent
add esp, 0x28
test al, al
je 0x1002873e
push dword [0x10186c04]
lea eax, [esp + 0x270]
push dword [0x10186c00]
push 0x106
push eax
push esi
call sym.CoreFoundation.dll__CFAppendPathExtension
add esp, 0x14
test al, al
je 0x1002873e
mov eax, dword [esp + 0x26c]
mov ecx, dword [esp + 0x28]
sub eax, ecx
dec eax
inc ecx
push eax
push eax
lea eax, [esi + ecx*2]
mov esi, dword [esp + 0x48]
push eax
push esi
call sym.CoreFoundation.dll_CFStringSetExternalCharactersNoCopy
push esi
mov esi, dword [esp + 0x40]
push esi
call sym.CoreFoundation.dll_CFStringReplaceAll
add esp, 0x18
test ebx, ebx
je 0x100286f8
push dword [esp + 0x34]
push dword [esp + 0x34]
push 0
push ebx
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x10
test al, al
jne 0x10028712
cmp byte [esp + 0x270], 4
je 0x1002873e
push esi
push dword [esp + 0x3c]
call fcn.100275c2
pop ecx
pop ecx
test al, al
je 0x1002873e
push edi
call sym.CoreFoundation.dll_CFArrayGetCount
mov ebx, dword [esp + 0x38]
push ebx
push eax
push 0
push edi
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x14
test al, al
jne 0x10028736
push ebx
push edi
call sym.CoreFoundation.dll_CFArrayAppendValue
pop ecx
pop ecx
mov al, 1
mov byte [esp + 0x13], al
jmp 0x10028742
mov al, byte [esp + 0x13]
test al, al
jne 0x10028753
cmp byte [esp + 0x280], al
je 0x10028854
mov ebx, dword [esp + 0x20]
test ebp, ebp
je 0x10028858
test ebx, ebx
je 0x10028858
cmp dword [esp + 0x50], 0
je 0x10028858
xor esi, esi
push ebp
mov dword [esp + 0x1c], esi
call fcn.10025bc1
pop ecx
test eax, eax
js 0x10028792
push eax
call fcn.10024331
mov esi, eax
pop ecx
mov dword [esp + 0x18], esi
jmp 0x100287cb
push ebp
call sym.CoreFoundation.dll_CFStringGetLength
pop ecx
cmp eax, 2
je 0x100287b2
jle 0x100287cb
push 2
push ebp
call sym.CoreFoundation.dll_CFStringGetCharacterAtIndex
pop ecx
pop ecx
push 0x5f
pop ecx
cmp ax, cx
jne 0x100287cb
push 2
push 0
push ebp
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFStringCreateWithSubstring
add esp, 0x10
mov dword [esp + 0x18], eax
mov esi, eax
test esi, esi
je 0x1002885c
push esi
push ebp
call sym.CoreFoundation.dll_CFEqual
pop ecx
pop ecx
test al, al
jne 0x1002885c
push esi
push ebx
call sym.CoreFoundation.dll_CFDictionaryGetValue
push esi
push dword [esp + 0x5c]
mov ebx, eax
call sym.CoreFoundation.dll_CFDictionaryGetValue
add esp, 0x10
mov esi, eax
test ebx, ebx
je 0x10028821
push edi
call sym.CoreFoundation.dll_CFArrayGetCount
push ebx
push eax
push 0
push edi
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x14
test al, al
jne 0x1002881c
push ebx
push edi
call sym.CoreFoundation.dll_CFArrayAppendValue
pop ecx
pop ecx
mov byte [esp + 0x13], 1
cmp byte [esp + 0x270], 4
je 0x10028854
test esi, esi
je 0x10028854
push edi
call sym.CoreFoundation.dll_CFArrayGetCount
push esi
push eax
push 0
push edi
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x14
test al, al
jne 0x1002884f
push esi
push edi
call sym.CoreFoundation.dll_CFArrayAppendValue
pop ecx
pop ecx
mov byte [esp + 0x13], 1
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x1002886b
push eax
call sym.CoreFoundation.dll_CFRelease
pop ecx
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x1002887a
push eax
call sym.CoreFoundation.dll_CFRelease
pop ecx
mov eax, dword [esp + 0x34]
test eax, eax
je 0x10028889
push eax
call sym.CoreFoundation.dll_CFRelease
pop ecx
test ebp, ebp
je 0x10028894
push ebp
call sym.CoreFoundation.dll_CFRelease
pop ecx
mov eax, dword [esp + 0x50]
test eax, eax
je 0x100288a3
push eax
call sym.CoreFoundation.dll_CFRelease
pop ecx
test ebx, ebx
je 0x100288ae
push ebx
call sym.CoreFoundation.dll_CFRelease
pop ecx
test esi, esi
je 0x100288b9
push esi
call sym.CoreFoundation.dll_CFRelease
pop ecx
mov bl, byte [esp + 0x13]
push dword [esp + 0x2c]
call sym.CoreFoundation.dll_CFRelease
push dword [esp + 0x44]
call sym.CoreFoundation.dll_CFRelease
push dword [esp + 0x40]
call sym.CoreFoundation.dll_CFRelease
mov ecx, dword [esp + 0x268]
add esp, 0xc
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1000234c
add esp, 0x250
ret