Function at 0x4aa1f6
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], edi
cmp edi, 0xd800
jae 0x4aa21d
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x10]
mov eax, edi
sar eax, 5
movzx eax, word [ecx + eax*2]
jmp 0x4aa280
cmp edi, 0xffff
ja 0x4aa245
cmp edi, 0xdbff
jg 0x4aa234
mov eax, 0x140
jmp 0x4aa236
xor eax, eax
mov esi, dword [ebp + 8]
mov ecx, edi
sar ecx, 5
add ecx, eax
mov eax, dword [esi + 0x10]
jmp 0x4aa27c
mov esi, dword [ebp + 8]
cmp edi, 0x10ffff
jbe 0x4aa258
mov eax, dword [esi + 0x1c]
sub eax, 0xffffff80
jmp 0x4aa288
cmp edi, dword [esi + 0x30]
jl 0x4aa262
mov eax, dword [esi + 0x34]
jmp 0x4aa288
mov eax, dword [esi + 0x10]
mov ecx, edi
sar ecx, 0xb
movzx ecx, word [eax + ecx*2 + 0x1040]
mov edx, edi
sar edx, 5
and edx, 0x3f
add ecx, edx
movzx eax, word [eax + ecx*2]
mov ecx, edi
and ecx, 0x1f
lea eax, [ecx + eax*4]
mov ecx, dword [esi + 0x10]
movzx eax, word [ecx + eax*2]
test al, 8
jne 0x4aa2af
mov cl, al
and cl, 3
cmp cl, 2
jb 0x4aa502
cwde
sar eax, 6
add eax, edi
mov dword [ebp - 4], eax
jmp 0x4aa4fe
mov ecx, dword [esi + 8]
movzx eax, ax
shr eax, 4
lea eax, [ecx + eax*2]
movzx ecx, word [eax]
inc eax
inc eax
mov dword [ebp + 8], ecx
mov dword [ebp - 8], eax
test ecx, 0x4000
je 0x4aa49a
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
call fcn.004aa0a3
mov ebx, dword [ebp + 0x10]
pop ecx
pop ecx
cmp eax, 3
jne 0x4aa3ae
cmp edi, 0x49
je 0x4aa2fd
cmp edi, 0x4a
je 0x4aa2fd
cmp edi, 0x12e
jne 0x4aa323
test ebx, ebx
je 0x4aa323
push 1
jmp 0x4aa318
mov ecx, esi
call fcn.004a9f7c
cmp eax, 0x20
je 0x4aa33f
cmp eax, 0x30
jne 0x4aa323
push 0
push dword [ebp + 0x14]
call ebx
pop ecx
pop ecx
test eax, eax
jge 0x4aa305
cmp edi, 0xcc
je 0x4aa33f
cmp edi, 0xcd
je 0x4aa33f
cmp edi, 0x128
jne 0x4aa453
mov eax, edi
sub eax, 0x49
je 0x4aa39d
dec eax
je 0x4aa392
sub eax, 0x82
je 0x4aa385
dec eax
je 0x4aa37a
sub eax, 0x5b
je 0x4aa36f
sub eax, 6
je 0x4aa364
xor eax, eax
jmp 0x4aa50c
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x554d60
jmp 0x4aa3a6
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x554d78
jmp 0x4aa38e
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x554d70
jmp 0x4aa38e
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x554d68
push 3
jmp 0x4aa3a8
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x554c0c
jmp 0x4aa3a6
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x54f5c4
push 2
pop eax
jmp 0x4aa50c
cmp eax, 2
jne 0x4aa453
cmp edi, 0x130
jne 0x4aa3c3
push 0x69
jmp 0x4aa3a8
mov edi, 0x307
cmp dword [ebp + 0xc], edi
jne 0x4aa41b
test ebx, ebx
je 0x4aa3f3
push 0xffffffffffffffff
jmp 0x4aa3e8
cmp eax, 0x49
je 0x4aa35d
mov ecx, esi
call fcn.004a9f7c
cmp eax, 0x30
jne 0x4aa3f3
push 0
push dword [ebp + 0x14]
call ebx
pop ecx
pop ecx
test eax, eax
jge 0x4aa3d5
mov edi, dword [ebp + 0xc]
test byte [ebp + 8], 1
je 0x4aa502
test dword [ebp + 8], 0x100
jne 0x4aa4e9
mov eax, dword [ebp - 8]
movzx eax, word [eax]
mov dword [ebp - 4], eax
jmp 0x4aa4fb
cmp dword [ebp + 0xc], 0x49
jne 0x4aa450
test ebx, ebx
je 0x4aa446
push 1
jmp 0x4aa43b
cmp eax, edi
je 0x4aa3f3
mov ecx, esi
call fcn.004a9f7c
cmp eax, 0x30
jne 0x4aa446
push 0
push dword [ebp + 0x14]
call ebx
pop ecx
pop ecx
test eax, eax
jge 0x4aa429
mov eax, 0x131
jmp 0x4aa50c
mov edi, dword [ebp + 0xc]
cmp edi, 0x130
je 0x4aa39d
cmp edi, 0x3a3
jne 0x4aa3f6
push 1
push dword [ebp + 0x14]
push ebx
push esi
call fcn.004aa1c0
add esp, 0x10
test al, al
jne 0x4aa3f6
push 0xffffffffffffffff
push dword [ebp + 0x14]
push ebx
push esi
call fcn.004aa1c0
add esp, 0x10
test al, al
je 0x4aa3f6
lea eax, [edi + 0x1f]
jmp 0x4aa50c
test cl, cl
jns 0x4aa3f6
test ecx, 0x100
jne 0x4aa4bc
and ecx, 0x7f
movzx ecx, byte [ecx + 0x554c60]
lea ecx, [eax + ecx*2]
movzx eax, word [ecx]
jmp 0x4aa4d6
and ecx, 0x7f
movzx ecx, byte [ecx + 0x554c60]
lea ecx, [eax + ecx*4]
movzx eax, word [ecx]
inc ecx
inc ecx
movzx edx, word [ecx]
shl eax, 0x10
or eax, edx
and eax, 0xf
je 0x4aa3f6
mov edx, dword [ebp + 0x18]
add ecx, 2
mov dword [edx], ecx
jmp 0x4aa50c
mov ecx, dword [ebp - 8]
movzx eax, word [ecx]
movzx ecx, word [ecx + 2]
shl eax, 0x10
or ecx, eax
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
cmp eax, edi
jne 0x4aa509
mov eax, dword [ebp - 4]
not eax
jmp 0x4aa50c
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret