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

Disassembly:
jmp 0x100a3b22
sub esp, 0x34
mov edx, 0x8000100
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x54]
cmp dword [esp + 0x48], edx
jne 0x100a3c41
mov eax, dword [esp + 0x4c]
xor ecx, ecx
inc ecx
push 2
pop ebp
test al, 0xc0
jne 0x100a3b84
mov eax, dword [0x10189bdc]
test eax, eax
jne 0x100a3b61
push edx
call fcn.10002c16
pop ecx
mov eax, dword [eax]
mov dword [0x10189bdc], eax
mov ebx, dword [esp + 0x60]
lea ecx, [esp + 0x30]
mov esi, dword [esp + 0x50]
push ecx
push ebx
push dword [esp + 0x64]
push edi
push esi
push 0
call eax
mov ecx, eax
add esp, 0x18
mov dword [esp + 0x48], ecx
jmp 0x100a3bb4
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x50]
shr eax, 7
and al, cl
movzx eax, al
push eax
push ebp
push ecx
lea eax, [esp + 0x3c]
push eax
push ebx
push dword [esp + 0x70]
lea eax, [esp + 0x60]
push eax
push edi
push esi
call sym.CoreFoundation.dll_CFUniCharDecompose
mov ecx, dword [esp + 0x6c]
add esp, 0x24
mov eax, dword [esp + 0x58]
test eax, eax
je 0x100a3bbe
mov dword [eax], ecx
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x30]
test eax, eax
je 0x100a3bcc
mov dword [eax], edx
cmp ecx, edi
jne 0x100a3bd7
xor eax, eax
jmp 0x100a4298
test ebx, ebx
jle 0x100a3c39
sub ebx, edx
cmp ebx, 0xa
jge 0x100a3c39
movzx eax, word [esi + ecx*2]
mov edx, 0xdc00
mov ebx, 0xdfff
cmp ax, dx
jb 0x100a3bfa
cmp ax, bx
jbe 0x100a3c39
add eax, 0x2800
mov edx, 0x3ff
cmp ax, dx
ja 0x100a3c32
xor eax, eax
sub edi, ecx
inc eax
cmp edi, eax
je 0x100a4298
movzx ecx, word [esi + ecx*2 + 2]
mov edx, 0xdc00
cmp cx, dx
jb 0x100a4298
cmp cx, bx
ja 0x100a4298
mov eax, ebp
jmp 0x100a4298
xor eax, eax
inc eax
jmp 0x100a4298
push dword [esp + 0x48]
call fcn.100a2612
pop ecx
mov ecx, eax
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x20], ecx
and dword [esp + 0x2c], eax
xor esi, esi
and dword [esp + 0x28], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], eax
test ecx, ecx
jne 0x100a3c73
push 3
pop eax
jmp 0x100a4298
mov ebp, dword [ecx]
xor ecx, ecx
mov edx, dword [esp + 0x4c]
inc ecx
mov dword [esp + 0x18], edx
test dl, 8
je 0x100a3c96
test cl, dl
jne 0x100a3cb2
mov edi, dword [ebp + 0x28]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x54]
jmp 0x100a3cb2
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x28], eax
mov eax, ebx
test dl, 0x20
jne 0x100a3cb2
mov ebx, dword [ebp + 0x24]
or edx, 0x10
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x18], edx
mov bl, byte [ebp + 0xc]
mov byte [esp + 0x13], bl
cmp bl, 5
mov ebx, esi
jne 0x100a3cea
push dword [esp + 0x64]
mov eax, dword [esp + 0x24]
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x64]
push edi
push dword [esp + 0x64]
push edx
push dword [eax + 4]
call fcn.10002ec8
add esp, 0x20
jmp 0x100a4298
cmp byte [esp + 0x13], 4
jne 0x100a3d12
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x64]
push edi
push dword [esp + 0x64]
push edx
push dword [esp + 0x64]
call fcn.10002054
jmp 0x100a3ce2
test edi, edi
jle 0x100a4284
mov ebp, dword [esp + 0x60]
test ebp, ebp
je 0x100a3d2a
cmp ebx, ebp
jge 0x100a3f91
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 4]
mov dword [esp + 0x48], eax
mov eax, ebp
sub eax, ebx
mov dword [esp + 0x34], eax
mov eax, edi
sub eax, esi
mov dword [esp + 0x38], eax
lea eax, [esp + 0x14]
push eax
xor eax, eax
cmp dword [esp + 0x4c], eax
je 0x100a3d7c
mov edi, dword [esp + 0x54]
test ebp, ebp
cmovne eax, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x64]
add eax, ebx
push eax
push dword [esp + 0x44]
lea eax, [edi + esi*2]
push eax
push edx
push ecx
call dword [esp + 0x64]
mov edi, dword [esp + 0x70]
add esp, 0x1c
jmp 0x100a3da7
mov ecx, dword [ecx]
test ebp, ebp
cmovne eax, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x64]
add eax, ebx
push eax
push dword [esp + 0x44]
lea eax, [esi*2]
add eax, dword [esp + 0x60]
push eax
push edx
call dword [ecx]
mov ebp, dword [esp + 0x78]
add esp, 0x18
add esi, eax
cmp esi, edi
jge 0x100a409e
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x100a4102
test esi, esi
jle 0x100a4102
mov eax, dword [esp + 0x50]
lea eax, [eax + esi*2]
mov dword [esp + 0x48], eax
movzx eax, word [eax]
push eax
call ecx
pop ecx
test al, al
je 0x100a4102
cmp dword [esp + 0x2c], 0
je 0x100a400d
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x34], esi
sub ebp, 2
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], esi
dec esi
movzx eax, word [ebp]
push eax
call edi
pop ecx
test al, al
jne 0x100a3df6
mov ecx, dword [esp + 0x20]
xor eax, eax
mov ebx, dword [esp + 0x1c]
inc eax
add ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x54]
mov edx, dword [ecx]
mov dword [esp + 0x48], ebp
cmp word [edx + 8], ax
jbe 0x100a3e76
mov eax, dword [ecx + 4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x34]
sub eax, esi
cmp dword [esp + 0x38], 0
je 0x100a3e5b
lea edx, [esp + 0x14]
push edx
push 0
push 0
push eax
push ebp
mov ebp, dword [esp + 0x2c]
push ebp
push ecx
call dword [esp + 0x54]
add esp, 0x1c
jmp 0x100a3e70
lea ecx, [esp + 0x14]
push ecx
push 0
push 0
push eax
push ebp
mov ebp, dword [esp + 0x2c]
push ebp
call dword [edx]
add esp, 0x18
sub ebx, dword [esp + 0x14]
jmp 0x100a3e77
dec ebx
mov eax, dword [esp + 0x60]
lea ebp, [esp + 0x14]
mov edx, dword [esp + 0x5c]
mov ecx, eax
sub eax, ebx
mov dword [esp + 0x1c], ebx
neg ecx
push ebp
mov ebp, dword [esp + 0x1c]
sbb ecx, ecx
and ecx, eax
add edx, ebx
push ecx
push edx
mov eax, edi
mov dword [esp + 0x44], ecx
sub eax, esi
push eax
push dword [esp + 0x58]
push ebp
call dword [esp + 0x44]
add esp, 0x18
test eax, eax
jle 0x100a3eee
add esi, eax
cmp esi, edi
jge 0x100a3f76
mov ebp, dword [esp + 0x50]
movzx eax, word [ebp + esi*2]
push eax
call dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
pop ecx
xor ecx, ecx
test al, al
je 0x100a3f7c
add ebx, dword [esp + 0x14]
inc ecx
mov eax, ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], eax
jmp 0x100a3f99
mov edx, dword [esp + 0x18]
xor ecx, ecx
inc ecx
test cl, dl
je 0x100a41d1
mov eax, edx
shr eax, 0x18
mov dword [esp + 0x48], eax
test al, al
je 0x100a3f47
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x50]
inc esi
movzx eax, word [ebx + esi*2]
push eax
call edi
pop ecx
test al, al
jne 0x100a3f12
mov ebp, dword [esp + 0x60]
xor ecx, ecx
mov edi, dword [esp + 0x54]
inc ecx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
test ebp, ebp
je 0x100a3f41
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x48]
mov byte [edx + ebx], al
mov edx, dword [esp + 0x18]
jmp 0x100a3f81
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x14]
mov esi, dword [esp + 0x3c]
add edx, ebx
push ecx
push dword [esp + 0x3c]
mov eax, edi
sub eax, dword [esp + 0x48]
push edx
push eax
mov eax, dword [esp + 0x60]
lea eax, [eax + esi*2]
push eax
mov eax, dword [esp + 0x34]
call dword [eax + 0x10]
add esp, 0x14
add esi, eax
mov edx, dword [esp + 0x18]
xor ecx, ecx
mov ebp, dword [esp + 0x60]
inc ecx
add ebx, dword [esp + 0x14]
mov dword [esp + 0x1c], ebx
cmp esi, edi
jl 0x100a3d1e
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x50]
cmp esi, edi
jge 0x100a4284
cmp dword [esp + 0x60], 0
je 0x100a4284
test eax, eax
jne 0x100a4284
test cl, dl
je 0x100a427c
shr edx, 0x18
test dl, dl
jne 0x100a427c
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x100a4274
lea eax, [esp + 0x14]
push eax
push 0
mov eax, edi
sub eax, esi
push 0
push eax
lea eax, [esi*2]
add eax, ebp
push eax
call dword [ebx + 0x10]
add esp, 0x14
test eax, eax
je 0x100a4274
add esi, eax
cmp esi, edi
jge 0x100a4274
mov eax, dword [esp + 0x14]
jmp 0x100a3fcf
test ebp, ebp
je 0x100a4076
mov ecx, dword [esp + 0x14]
lea eax, [ecx + ebx]
cmp ebp, eax
je 0x100a41e0
mov eax, dword [esp + 0x20]
mov ecx, edi
sub ecx, esi
mov dword [esp + 0x38], ecx
mov edx, dword [eax + 4]
test edx, edx
je 0x100a404e
lea ebp, [esp + 0x30]
push ebp
mov ebp, dword [esp + 0x1c]
push 0
push 0
push ecx
push dword [esp + 0x58]
push ebp
push eax
call edx
add esp, 0x1c
jmp 0x100a4068
mov eax, dword [eax]
lea edx, [esp + 0x30]
mov ebp, dword [esp + 0x18]
push edx
push 0
push 0
push ecx
push dword [esp + 0x58]
push ebp
call dword [eax]
add esp, 0x18
test eax, eax
jne 0x100a41dc
mov ebp, dword [esp + 0x60]
jmp 0x100a407e
mov eax, edi
sub eax, esi
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x18]
test dl, 0x20
je 0x100a40a9
inc esi
cmp esi, edi
jge 0x100a409e
mov eax, dword [esp + 0x50]
movzx eax, word [eax + esi*2]
push eax
call dword [esp + 0x2c]
pop ecx
test al, al
jne 0x100a4087
mov edx, dword [esp + 0x18]
xor ecx, ecx
jmp 0x100a3f80
add ebx, dword [esp + 0x14]
mov ecx, edx
shr ecx, 0x18
mov dword [esp + 0x40], ecx
test cl, cl
je 0x100a40d3
xor ecx, ecx
inc esi
inc ecx
mov dword [esp + 0x14], ecx
test ebp, ebp
je 0x100a3f81
mov eax, dword [esp + 0x40]
jmp 0x100a4197
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
mov eax, ebp
sub eax, ebx
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, dword [esp + 0x60]
push ecx
add eax, ebx
push eax
push dword [esp + 0x44]
push dword [esp + 0x58]
mov eax, dword [esp + 0x34]
call dword [eax + 0x10]
add esp, 0x14
add esi, eax
jmp 0x100a409e
test ebp, ebp
je 0x100a4162
mov ecx, dword [esp + 0x14]
lea eax, [ecx + ebx]
cmp ebp, eax
je 0x100a41fd
mov eax, dword [esp + 0x20]
mov ecx, edi
mov edx, dword [esp + 0x50]
sub ecx, esi
mov dword [esp + 0x48], ecx
mov ebp, dword [eax + 4]
test ebp, ebp
mov dword [esp + 0x40], ebp
lea edx, [edx + esi*2]
lea ebp, [esp + 0x30]
push ebp
mov ebp, dword [esp + 0x1c]
push 0
push 0
push ecx
push edx
push ebp
je 0x100a414d
push eax
call dword [esp + 0x5c]
add esp, 0x1c
jmp 0x100a4154
mov eax, dword [eax]
call dword [eax]
add esp, 0x18
test eax, eax
jne 0x100a41f9
mov ebp, dword [esp + 0x60]
jmp 0x100a416a
mov eax, edi
sub eax, esi
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x18]
xor ecx, ecx
add ebx, dword [esp + 0x14]
inc ecx
test cl, dl
je 0x100a426b
mov eax, edx
shr eax, 0x18
mov dword [esp + 0x40], eax
test al, al
je 0x100a41a7
inc esi
mov dword [esp + 0x14], ecx
test ebp, ebp
je 0x100a3f81
mov edi, dword [esp + 0x5c]
mov byte [ebx + edi], al
mov edi, dword [esp + 0x54]
jmp 0x100a3f81
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
mov eax, ebp
sub eax, ebx
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, dword [esp + 0x60]
push ecx
add eax, ebx
push eax
mov eax, dword [esp + 0x5c]
push dword [esp + 0x54]
lea eax, [eax + esi*2]
push eax
jmp 0x100a40f4
mov eax, ecx
mov dword [esp + 0x24], eax
jmp 0x100a3f95
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add ebx, ecx
push 2
pop eax
xor ecx, ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], eax
inc ecx
jmp 0x100a3f95
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add ebx, ecx
xor ecx, ecx
mov dword [esp + 0x1c], ebx
inc ecx
test cl, dl
je 0x100a425c
mov eax, edx
shr eax, 0x18
test al, al
jne 0x100a425c
mov ebx, dword [esp + 0x20]
xor eax, eax
mov dword [esp + 0x14], eax
test eax, eax
jne 0x100a4251
lea eax, [esp + 0x14]
push eax
push 0
mov eax, edi
sub eax, esi
push 0
push eax
mov eax, dword [esp + 0x60]
lea eax, [eax + esi*2]
push eax
call dword [ebx + 0x10]
add esp, 0x14
test eax, eax
je 0x100a4251
add esi, eax
cmp esi, edi
jge 0x100a4251
mov eax, dword [esp + 0x14]
jmp 0x100a4221
mov ebx, dword [esp + 0x1c]
xor ecx, ecx
mov edx, dword [esp + 0x18]
inc ecx
xor ebp, ebp
cmp esi, edi
push 2
pop eax
cmovge eax, ebp
jmp 0x100a41d3
mov dword [esp + 0x1c], ebx
jmp 0x100a41d1
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
push 2
cmp esi, edi
pop ecx
cmovl eax, ecx
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x100a428e
mov dword [ecx], ebx
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x100a4298
mov dword [ecx], esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret