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

Disassembly:
sub esp, 0x250
mov eax, dword [0x10184508]
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.100033e6
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.10024827
push eax
mov dword [esp + 0x44], eax
call sym.CoreFoundation.dll_CFArrayGetCount
add esp, 0xc
mov dword [esp + 0x44], eax
test ebx, ebx
je 0x10027e02
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 0x10027e02
push esi
call sym.CoreFoundation.dll_CFGetTypeID
pop ecx
mov esi, eax
call sym.CoreFoundation.dll_CFArrayGetTypeID
cmp esi, eax
je 0x10027ded
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 0x10027df1
mov esi, dword [esp + 0x14]
test esi, esi
je 0x10027e02
push esi
call sym.CoreFoundation.dll_CFArrayGetCount
pop ecx
mov dword [esp + 0x30], eax
jmp 0x10027e07
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 0x10027f21
push dword [0x10186c14]
lea eax, [esp + 0x270]
push dword [0x10186c10]
push 0x106
push eax
push ebp
call sym.CoreFoundation.dll__CFAppendPathExtension
add esp, 0x14
test al, al
je 0x10027f21
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 0x10027ecf
push ebp
push dword [esp + 0x34]
push 0
push esi
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x10
test al, al
jne 0x10027eec
cmp byte [esp + 0x270], 4
je 0x10027f21
push dword [esp + 0x2c]
push dword [esp + 0x3c]
call fcn.100275cc
pop ecx
pop ecx
test al, al
je 0x10027f21
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 0x10027f0c
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 0x10027f7f
jmp 0x100288c7
test esi, esi
je 0x10027f30
push esi
call sym.CoreFoundation.dll_CFArrayGetCount
pop ecx
test eax, eax
jne 0x10027f7b
mov edi, dword [esp + 0x44]
xor bl, bl
xor ebp, ebp
cmp ebp, edi
jge 0x10027f6c
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 0x10027f38
mov edi, dword [esp + 0x54]
test bl, bl
jne 0x10027f7b
xor bl, bl
jmp 0x100288c7
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 0x1002810a
push 2
push ebp
call sym.CoreFoundation.dll_CFStringGetCharacterAtIndex
pop ecx
pop ecx
movzx esi, ax
push 0x2d
pop eax
cmp ax, si
je 0x10027fb8
push 0x5f
pop eax
cmp ax, si
jne 0x10028110
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 0x1002810a
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 0x10028110
push dword [0x10186c14]
lea eax, [esp + 0x270]
push dword [0x10186c10]
push esi
push eax
push ebx
call sym.CoreFoundation.dll__CFAppendPathExtension
add esp, 0x14
test al, al
je 0x10028110
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 0x100280c5
push dword [esp + 0x24]
push dword [esp + 0x34]
push 0
push ebx
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x10
test al, al
jne 0x100280df
cmp byte [esp + 0x270], 4
je 0x10028114
push esi
push dword [esp + 0x3c]
call fcn.100275cc
pop ecx
pop ecx
test al, al
je 0x10028114
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 0x10028103
push esi
push edi
call sym.CoreFoundation.dll_CFArrayAppendValue
pop ecx
pop ecx
mov byte [esp + 0x13], 1
jmp 0x10028118
mov ebx, dword [esp + 0x14]
jmp 0x10028118
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 0x10028403
push ebp
call fcn.1002663a
push ebp
push dword [esp + 0x24]
mov byte [esp + 0x4b], al
call sym.CoreFoundation.dll_CFEqual
add esp, 0xc
test al, al
jne 0x10028269
test esi, esi
je 0x10028168
push ebp
push esi
call sym.CoreFoundation.dll_CFEqual
pop ecx
pop ecx
test al, al
jne 0x10028269
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 0x10028269
push dword [0x10186c14]
lea eax, [esp + 0x270]
push dword [0x10186c10]
push 0x106
push eax
push esi
call sym.CoreFoundation.dll__CFAppendPathExtension
add esp, 0x14
test al, al
je 0x10028269
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 0x1002822a
push ebp
push dword [esp + 0x34]
push 0
push ebx
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x10
test al, al
jne 0x10028244
cmp byte [esp + 0x270], 4
je 0x10028269
push esi
push dword [esp + 0x3c]
call fcn.100275cc
pop ecx
pop ecx
test al, al
je 0x10028269
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 0x10028264
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 0x1002832d
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 0x10028320
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 0x10028319
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 0x100282b0
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
xor esi, esi
cmp dword [esp + 0x30], esi
jle 0x10028381
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 0x10028374
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 0x1002833d
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 0x100283c5
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 0x100283c0
push esi
push edi
call sym.CoreFoundation.dll_CFArrayAppendValue
pop ecx
pop ecx
mov byte [esp + 0x13], 1
cmp byte [esp + 0x270], 4
je 0x100283f8
test ebx, ebx
je 0x100283f8
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 0x100283f3
push ebx
push edi
call sym.CoreFoundation.dll_CFArrayAppendValue
pop ecx
pop ecx
mov byte [esp + 0x13], 1
cmp byte [esp + 0x3f], 0
jne 0x1002885e
cmp byte [esp + 0x13], 0
jne 0x10028418
cmp byte [esp + 0x280], 0
je 0x1002885e
mov esi, dword [esp + 0x1c]
xor ebx, ebx
push esi
mov dword [esp + 0x50], ebx
call fcn.10025bcb
pop ecx
test eax, eax
js 0x1002843c
push eax
call fcn.1002433b
mov ebx, eax
pop ecx
mov dword [esp + 0x4c], ebx
jmp 0x10028475
push esi
call sym.CoreFoundation.dll_CFStringGetLength
pop ecx
cmp eax, 2
je 0x1002845c
jle 0x10028475
push 2
push esi
call sym.CoreFoundation.dll_CFStringGetCharacterAtIndex
pop ecx
pop ecx
push 0x5f
pop ecx
cmp ax, cx
jne 0x10028475
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 0x10028600
push ebx
push esi
call sym.CoreFoundation.dll_CFEqual
pop ecx
pop ecx
test al, al
jne 0x10028600
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 0x1002859a
push dword [0x10186c14]
lea eax, [esp + 0x270]
push dword [0x10186c10]
push esi
push eax
push ebx
call sym.CoreFoundation.dll__CFAppendPathExtension
add esp, 0x14
test al, al
je 0x1002859a
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 0x10028554
push dword [esp + 0x4c]
push dword [esp + 0x34]
push 0
push ebx
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x10
test al, al
jne 0x1002856e
cmp byte [esp + 0x270], 4
je 0x1002859e
push esi
push dword [esp + 0x3c]
call fcn.100275cc
pop ecx
pop ecx
test al, al
je 0x1002859e
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 0x10028592
push esi
push edi
call sym.CoreFoundation.dll_CFArrayAppendValue
pop ecx
pop ecx
mov al, 1
mov byte [esp + 0x13], al
jmp 0x100285a2
mov ebx, dword [esp + 0x14]
mov al, byte [esp + 0x13]
mov esi, dword [esp + 0x1c]
test al, al
jne 0x100285b7
cmp byte [esp + 0x280], al
je 0x1002885e
push esi
call fcn.10025bcb
pop ecx
test eax, eax
js 0x1002860a
xor ecx, ecx
mov dword [esp + 0x34], ecx
cmp eax, 0x98
jge 0x1002861e
mov eax, dword [eax*4 + 0x1013c3b0]
test eax, eax
je 0x1002861e
cmp byte [eax], cl
je 0x1002861e
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 0x1002861e
mov ebx, dword [esp + 0x14]
mov al, byte [esp + 0x13]
jmp 0x100285a6
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 0x10028748
push ecx
push esi
call sym.CoreFoundation.dll_CFEqual
pop ecx
pop ecx
test al, al
jne 0x10028748
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 0x10028748
push dword [0x10186c14]
lea eax, [esp + 0x270]
push dword [0x10186c10]
push 0x106
push eax
push esi
call sym.CoreFoundation.dll__CFAppendPathExtension
add esp, 0x14
test al, al
je 0x10028748
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 0x10028702
push dword [esp + 0x34]
push dword [esp + 0x34]
push 0
push ebx
call sym.CoreFoundation.dll_CFArrayContainsValue
add esp, 0x10
test al, al
jne 0x1002871c
cmp byte [esp + 0x270], 4
je 0x10028748
push esi
push dword [esp + 0x3c]
call fcn.100275cc
pop ecx
pop ecx
test al, al
je 0x10028748
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 0x10028740
push ebx
push edi
call sym.CoreFoundation.dll_CFArrayAppendValue
pop ecx
pop ecx
mov al, 1
mov byte [esp + 0x13], al
jmp 0x1002874c
mov al, byte [esp + 0x13]
test al, al
jne 0x1002875d
cmp byte [esp + 0x280], al
je 0x1002885e
mov ebx, dword [esp + 0x20]
test ebp, ebp
je 0x10028862
test ebx, ebx
je 0x10028862
cmp dword [esp + 0x50], 0
je 0x10028862
xor esi, esi
push ebp
mov dword [esp + 0x1c], esi
call fcn.10025bcb
pop ecx
test eax, eax
js 0x1002879c
push eax
call fcn.1002433b
mov esi, eax
pop ecx
mov dword [esp + 0x18], esi
jmp 0x100287d5
push ebp
call sym.CoreFoundation.dll_CFStringGetLength
pop ecx
cmp eax, 2
je 0x100287bc
jle 0x100287d5
push 2
push ebp
call sym.CoreFoundation.dll_CFStringGetCharacterAtIndex
pop ecx
pop ecx
push 0x5f
pop ecx
cmp ax, cx
jne 0x100287d5
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 0x10028866
push esi
push ebp
call sym.CoreFoundation.dll_CFEqual
pop ecx
pop ecx
test al, al
jne 0x10028866
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 0x1002882b
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 0x10028826
push ebx
push edi
call sym.CoreFoundation.dll_CFArrayAppendValue
pop ecx
pop ecx
mov byte [esp + 0x13], 1
cmp byte [esp + 0x270], 4
je 0x1002885e
test esi, esi
je 0x1002885e
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 0x10028859
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 0x10028875
push eax
call sym.CoreFoundation.dll_CFRelease
pop ecx
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x10028884
push eax
call sym.CoreFoundation.dll_CFRelease
pop ecx
mov eax, dword [esp + 0x34]
test eax, eax
je 0x10028893
push eax
call sym.CoreFoundation.dll_CFRelease
pop ecx
test ebp, ebp
je 0x1002889e
push ebp
call sym.CoreFoundation.dll_CFRelease
pop ecx
mov eax, dword [esp + 0x50]
test eax, eax
je 0x100288ad
push eax
call sym.CoreFoundation.dll_CFRelease
pop ecx
test ebx, ebx
je 0x100288b8
push ebx
call sym.CoreFoundation.dll_CFRelease
pop ecx
test esi, esi
je 0x100288c3
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