Function at 0x1013bb50
Capabilities:
Check for software breakpoints

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x14]
push edi
mov edi, dword [esp + 0x14]
cmp esi, 0xd800
jae 0x1013bb72
mov eax, dword [edi + 0x10]
mov ecx, esi
sar ecx, 5
movzx ecx, word [eax + ecx*2]
jmp 0x1013bbd2
cmp esi, 0xffff
ja 0x1013bb9a
xor ecx, ecx
mov eax, 0x140
cmp esi, 0xdbff
cmovle ecx, eax
mov eax, esi
sar eax, 5
add ecx, eax
mov eax, dword [edi + 0x10]
movzx ecx, word [eax + ecx*2]
jmp 0x1013bbd2
cmp esi, 0x10ffff
jbe 0x1013bbaa
mov ecx, dword [edi + 0x1c]
sub ecx, 0xffffff80
jmp 0x1013bbda
cmp esi, dword [edi + 0x30]
jl 0x1013bbb4
mov ecx, dword [edi + 0x34]
jmp 0x1013bbda
mov edx, dword [edi + 0x10]
mov eax, esi
sar eax, 0xb
movzx ecx, word [edx + eax*2 + 0x1040]
mov eax, esi
sar eax, 5
and eax, 0x3f
add ecx, eax
movzx ecx, word [edx + ecx*2]
mov eax, esi
and eax, 0x1f
lea ecx, [eax + ecx*4]
mov eax, dword [edi + 0x10]
movzx ecx, word [eax + ecx*2]
test cl, 8
jne 0x1013bc08
mov al, cl
and al, 3
cmp al, 2
jb 0x1013bee4
movsx ecx, cx
sar ecx, 6
add ecx, esi
pop edi
cmp ecx, esi
mov eax, ecx
pop esi
not eax
pop ebp
cmovne eax, ecx
pop ebx
ret
mov eax, dword [edi + 8]
shr ecx, 4
movzx ebx, word [eax + ecx*2]
lea edx, [ecx + 1]
mov dword [esp + 0x18], ebx
lea edx, [eax + edx*2]
mov dword [esp + 0x14], edx
test ebx, 0x4000
je 0x1013bea3
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
call fcn.1013ba50
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
cmp eax, 3
jne 0x1013bd2c
cmp esi, 0x49
je 0x1013bc5c
cmp esi, 0x4a
je 0x1013bc5c
cmp esi, 0x12e
jne 0x1013bc8f
test ebx, ebx
je 0x1013bc8f
push 1
push ebp
call ebx
add esp, 8
test eax, eax
js 0x1013bc8f
nop dword [eax]
mov edx, eax
mov ecx, edi
call fcn.1013b9a0
cmp eax, 0x20
je 0x1013bcab
cmp eax, 0x30
jne 0x1013bc8f
push 0
push ebp
call ebx
add esp, 8
test eax, eax
jns 0x1013bc70
cmp esi, 0xcc
je 0x1013bcab
cmp esi, 0xcd
je 0x1013bcab
cmp esi, 0x128
jne 0x1013bdfd
add esi, 0xffffffb7
cmp esi, 0xe5
ja case.0x1013bcc1.75
movzx eax, byte [esi + 0x1013bf10]
jmp dword [eax*4 + 0x1013bef4]
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov dword [eax], 0x101aaa9c
mov eax, 2
pop ebx
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov dword [eax], 0x101c5c80
mov eax, 2
pop ebx
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov dword [eax], 0x101c5c70
mov eax, 3
pop ebx
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov dword [eax], 0x101c5c78
mov eax, 3
pop ebx
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov dword [eax], 0x101c5c68
mov eax, 3
pop ebx
ret
cmp eax, 2
jne 0x1013bdfd
cmp esi, 0x130
jne 0x1013bd47
pop edi
pop esi
pop ebp
mov eax, 0x69
pop ebx
ret
cmp esi, 0x307
jne 0x1013bdbd
test ebx, ebx
je 0x1013bd7f
push 0xffffffffffffffff
push ebp
call ebx
add esp, 8
test eax, eax
js 0x1013bd7f
nop
cmp eax, 0x49
je case.0x1013bcc1.75
mov edx, eax
mov ecx, edi
call fcn.1013b9a0
cmp eax, 0x30
jne 0x1013bd7f
push 0
push ebp
call ebx
add esp, 8
test eax, eax
jns 0x1013bd60
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
test bl, 1
je 0x1013bee4
movzx ecx, word [edx]
test ebx, 0x100
je 0x1013bee6
movzx eax, word [edx + 2]
shl ecx, 0x10
or ecx, eax
pop edi
cmp ecx, esi
mov eax, ecx
pop esi
not eax
pop ebp
cmovne eax, ecx
pop ebx
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
cmp esi, 0x49
jne 0x1013be19
test ebx, ebx
je 0x1013bdf3
push 1
push ebp
call ebx
add esp, 8
test eax, eax
js 0x1013bdf3
cmp eax, 0x307
je 0x1013bd7f
mov edx, eax
mov ecx, edi
call fcn.1013b9a0
cmp eax, 0x30
jne 0x1013bdf3
push 0
push ebp
call ebx
add esp, 8
test eax, eax
jns 0x1013bdd2
pop edi
pop esi
pop ebp
mov eax, 0x131
pop ebx
ret
cmp esi, 0x130
jne 0x1013be19
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov dword [eax], 0x101aab4c
mov eax, 2
pop ebx
ret
cmp esi, 0x3a3
jne 0x1013bd7f
test ebx, ebx
je 0x1013bd7f
push 1
push ebp
call ebx
add esp, 8
test eax, eax
js 0x1013be63
nop dword [eax]
mov edx, eax
mov ecx, edi
call fcn.1013b8e0
test al, 4
je 0x1013be5b
push 0
push ebp
call ebx
add esp, 8
test eax, eax
jns 0x1013be40
jmp 0x1013be63
test eax, eax
jne 0x1013bd7f
push 0xffffffffffffffff
push ebp
call ebx
add esp, 8
test eax, eax
js 0x1013bd7f
mov edx, eax
mov ecx, edi
call fcn.1013b8e0
test al, 4
je 0x1013be91
push 0
push ebp
call ebx
add esp, 8
test eax, eax
jns 0x1013be73
jmp 0x1013bd7f
test eax, eax
je 0x1013bd7f
pop edi
pop esi
pop ebp
mov eax, 0x3c2
pop ebx
ret
test bl, bl
jns 0x1013bd87
mov eax, ebx
and eax, 0x7f
movzx eax, byte [eax + 0x101c5ce0]
test ebx, 0x100
jne 0x1013bec4
lea edx, [edx + eax*2]
jmp 0x1013beca
lea edx, [edx + eax*4]
add edx, 2
movzx eax, word [edx]
and eax, 0xf
je 0x1013bd83
mov ecx, dword [esp + 0x24]
add edx, 2
pop edi
pop esi
pop ebp
mov dword [ecx], edx
pop ebx
ret
mov ecx, esi
pop edi
cmp ecx, esi
mov eax, ecx
pop esi
not eax
pop ebp
cmovne eax, ecx
pop ebx
ret