Function at 0x1009cf90
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, dword [ebp + 8]
mov edx, esi
push edi
cmp esi, 0xd800
jae 0x1009cfb5
mov eax, esi
sar eax, 5
movzx ecx, word [eax*2 + 0x10186728]
jmp 0x1009d011
cmp esi, 0xffff
ja 0x1009cfd4
xor ecx, ecx
mov eax, 0x140
cmp esi, 0xdbff
cmovle ecx, eax
mov eax, esi
sar eax, 5
jmp 0x1009d007
cmp esi, 0x10ffff
jbe 0x1009cfe3
mov eax, 0xd58
jmp 0x1009d019
cmp esi, 0xe0800
jl 0x1009cff2
mov eax, 0x3040
jmp 0x1009d019
mov eax, esi
sar eax, 0xb
movzx ecx, word [eax*2 + str.X_rX_rp_r]
mov eax, esi
sar eax, 5
and eax, 0x3f
add ecx, eax
movzx ecx, word [ecx*2 + 0x10186728]
mov eax, esi
and eax, 0x1f
lea eax, [eax + ecx*4]
movzx eax, word [eax*2 + 0x10186728]
mov dword [ebp - 0xc], eax
test al, 8
jne 0x1009d048
test al, 2
je 0x1009d579
movsx edx, ax
sar edx, 7
add edx, esi
pop edi
mov eax, edx
cmp edx, esi
not eax
pop esi
cmovne eax, edx
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, ax
shr eax, 4
movzx edx, word [eax*2 + 0x1018c7b0]
lea ebx, [eax*2 + 0x1018c7b2]
mov dword [ebp - 8], edx
mov dword [ebp - 4], ebx
test edx, 0x4000
je 0x1009d4dd
mov eax, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
cmp eax, 3
jne 0x1009d221
cmp esi, 0x49
je 0x1009d097
cmp esi, 0x4a
je 0x1009d097
cmp esi, 0x12e
jne 0x1009d17f
test edi, edi
je 0x1009d17f
push 1
push ebx
mov ecx, edi
call dword [0x1015821c]
call edi
mov edx, eax
add esp, 8
test edx, edx
js 0x1009d17f
mov eax, 0xdbff
nop
cmp edx, 0xd800
jae 0x1009d0d7
mov eax, edx
shr eax, 5
movzx eax, word [eax*2 + 0x10186728]
jmp 0x1009d131
cmp edx, 0xffff
ja 0x1009d0f4
mov ecx, edx
shr ecx, 5
cmp eax, edx
sbb eax, eax
and eax, 0xfffffec0
add eax, 0x140
jmp 0x1009d127
cmp edx, 0x10ffff
jbe 0x1009d103
mov eax, 0xd58
jmp 0x1009d137
cmp edx, 0xe0800
jb 0x1009d112
mov eax, 0x3040
jmp 0x1009d137
mov eax, edx
shr eax, 0xb
movzx ecx, word [eax*2 + str.X_rX_rp_r]
mov eax, edx
shr eax, 5
and eax, 0x3f
add ecx, eax
movzx eax, word [ecx*2 + 0x10186728]
and edx, 0x1f
lea eax, [edx + eax*4]
movzx eax, word [eax*2 + 0x10186728]
mov ecx, eax
test al, 8
je 0x1009d153
shr ecx, 4
movzx ecx, word [ecx*2 + 0x1018c7b0]
shr ecx, 7
and ecx, 0x60
cmp ecx, 0x40
je 0x1009d19b
cmp ecx, 0x60
jne 0x1009d17f
push 0
push ebx
mov ecx, edi
call dword [0x1015821c]
call edi
mov edx, eax
add esp, 8
mov eax, 0xdbff
test edx, edx
jns 0x1009d0c0
cmp esi, 0xcc
je 0x1009d19b
cmp esi, 0xcd
je 0x1009d19b
cmp esi, 0x128
jne 0x1009d482
add esi, 0xffffffb7
cmp esi, 0xe5
ja case.0x1009d1b1.75
movzx eax, byte [esi + 0x1009d5a8]
jmp dword [eax*4 + 0x1009d58c]
mov eax, dword [ebp + 0x14]
pop edi
pop esi
pop ebx
mov dword [eax], 0x1018d7f4
mov eax, 2
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
pop edi
pop esi
pop ebx
mov dword [eax], 0x1018d7f8
mov eax, 2
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
pop edi
pop esi
pop ebx
mov dword [eax], 0x1018d800
mov eax, 3
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
pop edi
pop esi
pop ebx
mov dword [eax], 0x1018d808
mov eax, 3
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
pop edi
pop esi
pop ebx
mov dword [eax], 0x1018d810
mov eax, 3
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x1009d482
cmp esi, 0x130
jne 0x1009d23e
pop edi
pop esi
mov eax, 0x69
pop ebx
mov esp, ebp
pop ebp
ret
cmp esi, 0x307
jne 0x1009d380
test edi, edi
je 0x1009d334
push 0xffffffffffffffff
push ebx
mov ecx, edi
call dword [0x1015821c]
call edi
mov edx, eax
add esp, 8
test edx, edx
js 0x1009d334
mov eax, 0xdbff
cmp edx, 0x49
je 0x1009d36e
cmp edx, 0xd800
jae 0x1009d291
mov eax, edx
shr eax, 5
movzx eax, word [eax*2 + 0x10186728]
jmp 0x1009d2eb
cmp edx, 0xffff
ja 0x1009d2ae
mov ecx, edx
shr ecx, 5
cmp eax, edx
sbb eax, eax
and eax, 0xfffffec0
add eax, 0x140
jmp 0x1009d2e1
cmp edx, 0x10ffff
jbe 0x1009d2bd
mov eax, 0xd58
jmp 0x1009d2f1
cmp edx, 0xe0800
jb 0x1009d2cc
mov eax, 0x3040
jmp 0x1009d2f1
mov eax, edx
shr eax, 0xb
movzx ecx, word [eax*2 + str.X_rX_rp_r]
mov eax, edx
shr eax, 5
and eax, 0x3f
add ecx, eax
movzx eax, word [ecx*2 + 0x10186728]
and edx, 0x1f
lea eax, [edx + eax*4]
movzx eax, word [eax*2 + 0x10186728]
mov ecx, eax
test al, 8
je 0x1009d30d
shr ecx, 4
movzx ecx, word [ecx*2 + 0x1018c7b0]
shr ecx, 7
and ecx, 0x60
cmp ecx, 0x60
jne 0x1009d334
push 0
push ebx
mov ecx, edi
call dword [0x1015821c]
call edi
mov edx, eax
add esp, 8
mov eax, 0xdbff
test edx, edx
jns 0x1009d271
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
test cl, 0x10
je 0x1009d54e
test byte [ebp - 0xc], 2
je 0x1009d54e
mov eax, ecx
and eax, 0xf
movzx eax, byte [eax + 0x1018d818]
test ecx, 0x100
jne 0x1009d522
movzx edx, word [ebx + eax*2]
jmp 0x1009d530
mov eax, dword [ebp + 0x14]
mov dword [eax], 0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp esi, 0x49
jne 0x1009d482
test edi, edi
je 0x1009d476
push 1
push ebx
mov ecx, edi
call dword [0x1015821c]
call edi
mov edx, eax
add esp, 8
test edx, edx
js 0x1009d476
mov eax, 0xdbff
cmp edx, 0x307
je 0x1009d334
cmp edx, 0xd800
jae 0x1009d3d3
mov eax, edx
shr eax, 5
movzx eax, word [eax*2 + 0x10186728]
jmp 0x1009d42d
cmp edx, 0xffff
ja 0x1009d3f0
mov ecx, edx
shr ecx, 5
cmp eax, edx
sbb eax, eax
and eax, 0xfffffec0
add eax, 0x140
jmp 0x1009d423
cmp edx, 0x10ffff
jbe 0x1009d3ff
mov eax, 0xd58
jmp 0x1009d433
cmp edx, 0xe0800
jb 0x1009d40e
mov eax, 0x3040
jmp 0x1009d433
mov eax, edx
shr eax, 0xb
movzx ecx, word [eax*2 + str.X_rX_rp_r]
mov eax, edx
shr eax, 5
and eax, 0x3f
add ecx, eax
movzx eax, word [ecx*2 + 0x10186728]
and edx, 0x1f
lea eax, [edx + eax*4]
movzx eax, word [eax*2 + 0x10186728]
mov ecx, eax
test al, 8
je 0x1009d44f
shr ecx, 4
movzx ecx, word [ecx*2 + 0x1018c7b0]
shr ecx, 7
and ecx, 0x60
cmp ecx, 0x60
jne 0x1009d476
push 0
push ebx
mov ecx, edi
call dword [0x1015821c]
call edi
mov edx, eax
add esp, 8
mov eax, 0xdbff
test edx, edx
jns 0x1009d3b0
pop edi
pop esi
mov eax, 0x131
pop ebx
mov esp, ebp
pop ebp
ret
cmp esi, 0x130
jne 0x1009d49f
mov eax, dword [ebp + 0x14]
pop edi
pop esi
pop ebx
mov dword [eax], 0x1018d7a4
mov eax, 2
mov esp, ebp
pop ebp
ret
cmp esi, 0x3a3
jne 0x1009d334
push 1
push ebx
push edi
call fcn.10022270
add esp, 0xc
test al, al
jne 0x1009d334
push 0xffffffffffffffff
push ebx
push edi
call fcn.10022270
add esp, 0xc
test al, al
je 0x1009d334
pop edi
lea eax, [esi + 0x1f]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test dl, dl
jns 0x1009d337
mov eax, edx
and eax, 0x7f
movzx eax, byte [eax + 0x1018d818]
test edx, 0x100
jne 0x1009d4fe
lea edx, [ebx + eax*2]
jmp 0x1009d507
lea edx, [eax*4 + 2]
add edx, ebx
movzx eax, word [edx]
and eax, 0xf
je 0x1009d337
mov ecx, dword [ebp + 0x14]
add edx, 2
pop edi
pop esi
pop ebx
mov dword [ecx], edx
mov esp, ebp
pop ebp
ret
movzx edx, word [ebx + eax*4]
movzx eax, word [ebx + eax*4 + 2]
shl edx, 0x10
or edx, eax
and ecx, 0x400
lea eax, [edx + esi]
mov dword [ebp - 8], ecx
mov ecx, esi
sub ecx, edx
cmp dword [ebp - 8], 0
pop edi
pop esi
cmovne eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret
test cl, 1
je 0x1009d577
movzx edx, word [ebx]
test ecx, 0x100
je 0x1009d579
movzx eax, word [ebx + 2]
shl edx, 0x10
or edx, eax
pop edi
mov eax, edx
cmp edx, esi
not eax
pop esi
cmovne eax, edx
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, esi
pop edi
mov eax, edx
cmp edx, esi
not eax
pop esi
cmovne eax, edx
pop ebx
mov esp, ebp
pop ebp
ret