Function at 0x4845e5
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 0x48460c
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x10]
mov eax, edi
sar eax, 5
movzx eax, word [ecx + eax*2]
jmp 0x48466f
cmp edi, 0xffff
ja 0x484634
cmp edi, 0xdbff
jg 0x484623
mov eax, 0x140
jmp 0x484625
xor eax, eax
mov esi, dword [ebp + 8]
mov ecx, edi
sar ecx, 5
add ecx, eax
mov eax, dword [esi + 0x10]
jmp 0x48466b
mov esi, dword [ebp + 8]
cmp edi, 0x10ffff
jbe 0x484647
mov eax, dword [esi + 0x1c]
sub eax, 0xffffff80
jmp 0x484677
cmp edi, dword [esi + 0x30]
jl 0x484651
mov eax, dword [esi + 0x34]
jmp 0x484677
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 0x48469e
mov cl, al
and cl, 3
cmp cl, 2
jb 0x4848f1
cwde
sar eax, 6
add eax, edi
mov dword [ebp - 4], eax
jmp 0x4848ed
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 0x484889
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
call fcn.00484492
mov ebx, dword [ebp + 0x10]
pop ecx
pop ecx
cmp eax, 3
jne 0x48479d
cmp edi, 0x49
je 0x4846ec
cmp edi, 0x4a
je 0x4846ec
cmp edi, 0x12e
jne 0x484712
test ebx, ebx
je 0x484712
push 1
jmp 0x484707
mov ecx, esi
call fcn.0048436b
cmp eax, 0x20
je 0x48472e
cmp eax, 0x30
jne 0x484712
push 0
push dword [ebp + 0x14]
call ebx
pop ecx
pop ecx
test eax, eax
jge 0x4846f4
cmp edi, 0xcc
je 0x48472e
cmp edi, 0xcd
je 0x48472e
cmp edi, 0x128
jne 0x484842
mov eax, edi
sub eax, 0x49
je 0x48478c
dec eax
je 0x484781
sub eax, 0x82
je 0x484774
dec eax
je 0x484769
sub eax, 0x5b
je 0x48475e
sub eax, 6
je 0x484753
xor eax, eax
jmp 0x4848fb
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4e53d8
jmp 0x484795
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4e53f0
jmp 0x48477d
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4e53e8
jmp 0x48477d
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4e53e0
push 3
jmp 0x484797
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4e5284
jmp 0x484795
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4dfc3c
push 2
pop eax
jmp 0x4848fb
cmp eax, 2
jne 0x484842
cmp edi, 0x130
jne 0x4847b2
push 0x69
jmp 0x484797
mov edi, 0x307
cmp dword [ebp + 0xc], edi
jne 0x48480a
test ebx, ebx
je 0x4847e2
push 0xffffffffffffffff
jmp 0x4847d7
cmp eax, 0x49
je 0x48474c
mov ecx, esi
call fcn.0048436b
cmp eax, 0x30
jne 0x4847e2
push 0
push dword [ebp + 0x14]
call ebx
pop ecx
pop ecx
test eax, eax
jge 0x4847c4
mov edi, dword [ebp + 0xc]
test byte [ebp + 8], 1
je 0x4848f1
test dword [ebp + 8], 0x100
jne 0x4848d8
mov eax, dword [ebp - 8]
movzx eax, word [eax]
mov dword [ebp - 4], eax
jmp 0x4848ea
cmp dword [ebp + 0xc], 0x49
jne 0x48483f
test ebx, ebx
je 0x484835
push 1
jmp 0x48482a
cmp eax, edi
je 0x4847e2
mov ecx, esi
call fcn.0048436b
cmp eax, 0x30
jne 0x484835
push 0
push dword [ebp + 0x14]
call ebx
pop ecx
pop ecx
test eax, eax
jge 0x484818
mov eax, 0x131
jmp 0x4848fb
mov edi, dword [ebp + 0xc]
cmp edi, 0x130
je 0x48478c
cmp edi, 0x3a3
jne 0x4847e5
push 1
push dword [ebp + 0x14]
push ebx
push esi
call fcn.004845af
add esp, 0x10
test al, al
jne 0x4847e5
push 0xffffffffffffffff
push dword [ebp + 0x14]
push ebx
push esi
call fcn.004845af
add esp, 0x10
test al, al
je 0x4847e5
lea eax, [edi + 0x1f]
jmp 0x4848fb
test cl, cl
jns 0x4847e5
test ecx, 0x100
jne 0x4848ab
and ecx, 0x7f
movzx ecx, byte [ecx + 0x4e52d8]
lea ecx, [eax + ecx*2]
movzx eax, word [ecx]
jmp 0x4848c5
and ecx, 0x7f
movzx ecx, byte [ecx + 0x4e52d8]
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 0x4847e5
mov edx, dword [ebp + 0x18]
add ecx, 2
mov dword [edx], ecx
jmp 0x4848fb
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 0x4848f8
mov eax, dword [ebp - 4]
not eax
jmp 0x4848fb
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret