Function at 0x489470
Capabilities:
Check for software breakpoints

Disassembly:
sub esp, 0x28
push ebx
push ebp
mov ebp, dword [esp + 0x34]
mov eax, dword [ebp + 0x3c]
push esi
xor esi, esi
test byte [eax + 0x9c], 4
push edi
jne 0x48a82e
mov dword [ebp], 0xf0f0f00f
mov dword [ebp + 4], 0xf0f0f0f0
test byte [ebp + 0x199], 1
mov byte [ebp + 0xe0], 0xff
mov byte [ebp + 0x102], 0
je 0x4894b8
or byte [ebp + 0x14], 2
jmp 0x4894bc
and byte [ebp + 0x14], 0xfd
mov al, byte [ebp + 0x13]
and byte [ebp + 0x14], 0xfe
test al, 4
je 0x4894e4
movzx ecx, byte [ebp + 0x74]
movzx edx, word [ebp + 0xe2]
xor al, 4
mov byte [ebp + 0x13], al
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], edx
jmp 0x489ad8
mov bl, byte [ebp + 0x300]
test bl, bl
je 0x4895cb
test byte [ebp + 0x19a], 1
jne 0x4895cb
mov eax, dword [ebp + 0x1b8]
mov ecx, dword [ebp + 0x1bc]
mov edi, dword [ebp + 0x2c8]
xor dl, dl
add eax, dword [ebp + 0x190]
adc ecx, dword [ebp + 0x194]
cmp edi, eax
jne 0x48953d
mov edi, dword [ebp + 0x2cc]
cmp edi, ecx
jne 0x48953d
test bl, 3
je 0x48953d
test byte [ebp + 0x302], 3
jne 0x48953d
mov dl, 1
mov edi, dword [ebp + 0x2d0]
cmp edi, eax
jne 0x489562
mov edi, dword [ebp + 0x2d4]
cmp edi, ecx
jne 0x489562
test bl, 0xc
je 0x489562
test byte [ebp + 0x302], 0x30
jne 0x489562
or dl, 2
mov edi, dword [ebp + 0x2d8]
cmp edi, eax
jne 0x489587
mov edi, dword [ebp + 0x2dc]
cmp edi, ecx
jne 0x489587
test bl, 0x30
je 0x489587
test byte [ebp + 0x303], 3
jne 0x489587
or dl, 4
mov edi, dword [ebp + 0x2e0]
cmp edi, eax
jne 0x4895ac
mov eax, dword [ebp + 0x2e4]
cmp eax, ecx
jne 0x4895ac
test bl, 0xc0
je 0x4895ac
test byte [ebp + 0x303], 0x30
jne 0x4895ac
or dl, 8
test dl, dl
je 0x4895cb
or byte [ebp + 0x2f8], dl
mov bl, 0x11
mov dword [ebp + 0xdc], esi
mov dword [esp + 0x18], esi
mov byte [esp + 0x14], bl
jmp 0x489ba4
and byte [ebp + 0x19a], 0xfe
mov esi, dword [ebp + 0x1b8]
mov edx, dword [ebp + 0x1bc]
xor ecx, ecx
add esi, dword [ebp + 0x190]
mov byte [esp + 0x13], 0
adc edx, dword [ebp + 0x194]
mov edi, esi
sub edi, dword [ebp]
mov dword [esp + 0x2c], edx
xor edx, edx
mov byte [ebp + 0x72], 0
mov word [ebp + 0x70], cx
mov byte [ebp + 0x77], cl
mov byte [ebp + 0x78], 6
mov dword [esp + 0x18], edx
nop
cmp edi, 0x1000
jae 0x489625
mov eax, dword [ebp + 8]
mov al, byte [edi + eax]
mov byte [esp + 0x1e], al
inc edi
jmp 0x48965d
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x1e]
push ecx
mov edx, 1
mov ecx, ebp
call fcn.0041f730
mov bl, al
mov byte [esp + 0x14], bl
test bl, bl
jne 0x489ba4
mov eax, dword [esp + 0x18]
mov edx, esi
sub edx, dword [ebp]
lea edi, [edx + eax + 1]
mov al, byte [esp + 0x1e]
mov edx, dword [esp + 0x18]
movzx ecx, al
add ecx, 0xffffffda
mov dword [esp + 0x20], edi
mov byte [edx + ebp + 0x80], al
cmp ecx, 0xcd
ja case.0x489681.39
movzx ecx, byte [ecx + 0x48a8d0]
jmp dword [ecx*4 + 0x48a8a0]
cmp byte [ebp + 0x16], 4
je 0x489692
mov byte [ebp + 0x78], 0
mov byte [esp + 0x13], 0
jmp 0x48976b
cmp byte [ebp + 0x16], 4
je 0x4896a6
mov byte [ebp + 0x78], 1
mov byte [esp + 0x13], 0
jmp 0x48976b
cmp byte [ebp + 0x16], 4
je 0x4896ba
mov byte [ebp + 0x78], 2
mov byte [esp + 0x13], 0
jmp 0x48976b
cmp byte [ebp + 0x16], 4
je 0x4896ce
mov byte [ebp + 0x78], 3
mov byte [esp + 0x13], 0
jmp 0x48976b
mov byte [ebp + 0x78], 4
mov byte [esp + 0x13], 0
jmp 0x48976b
mov byte [ebp + 0x78], 5
mov byte [esp + 0x13], 0
jmp 0x48976b
or word [ebp + 0x70], 0x20
mov byte [esp + 0x13], 0
jmp 0x48976b
or word [ebp + 0x70], 0x10
mov byte [esp + 0x13], 0
jmp 0x48976b
mov eax, 0x80
or word [ebp + 0x70], ax
mov byte [esp + 0x13], 0
jmp 0x48976b
mov cx, word [ebp + 0x70]
mov eax, 0xfdff
and cx, ax
mov eax, 0x100
or cx, ax
mov word [ebp + 0x70], cx
mov byte [esp + 0x13], 0
jmp 0x48976b
mov cx, word [ebp + 0x70]
mov eax, 0xfeff
and cx, ax
mov eax, 0x200
or cx, ax
mov word [ebp + 0x70], cx
mov byte [esp + 0x13], 0
jmp 0x48976b
cmp byte [ebp + 0x16], 4
jne 0x489791
mov cl, al
and cl, 0xf0
cmp cl, 0x40
jne 0x489791
mov byte [esp + 0x13], al
inc byte [ebp + 0x72]
inc edx
mov dword [esp + 0x18], edx
cmp edx, 0xf
jb 0x489610
mov bl, 0x1d
mov dword [ebp + 0xdc], 0
mov byte [esp + 0x14], bl
jmp 0x489ba4
inc edx
mov dword [esp + 0x18], edx
cmp al, 0xf
jne 0x489800
cmp edi, 0x1000
jae 0x4897af
mov eax, dword [ebp + 8]
mov al, byte [edi + eax]
mov byte [esp + 0x1e], al
inc edi
jmp 0x4897df
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x1e]
push ecx
mov edx, 1
mov ecx, ebp
call fcn.0041f730
mov bl, al
mov byte [esp + 0x14], bl
test bl, bl
jne 0x489ba4
mov al, byte [esp + 0x1e]
mov edx, dword [esp + 0x18]
mov edi, 1
mov byte [edx + ebp + 0x80], al
inc edx
mov dword [esp + 0x18], edx
movzx dx, al
mov eax, 0x100
add dx, ax
mov dword [esp + 0x20], edi
movzx ecx, dx
jmp 0x489807
movzx cx, al
movzx ecx, cx
mov dl, byte [esp + 0x13]
mov dword [esp + 0x28], ecx
mov word [ebp + 0xe2], cx
test dl, dl
je 0x489834
movzx ax, dl
or word [ebp + 0x70], ax
movzx eax, word [ebp + 0x70]
test dl, 8
je 0x489834
and eax, 0xff7f
mov word [ebp + 0x70], ax
movzx edx, cx
shl edx, 4
mov bl, byte [edx + 0x92217c]
mov byte [esp + 0x13], bl
test bl, 2
je 0x489877
movzx ecx, word [ebp + 0x70]
test cl, 8
je 0x489859
mov eax, 8
jmp 0x489874
cmp byte [ebp + 0x16], 3
sbb eax, eax
and cl, 0x80
movzx ecx, cl
and eax, 0xfffffffe
add eax, 4
neg ecx
sbb ecx, ecx
and ecx, 6
xor eax, ecx
mov byte [ebp + 0x79], al
mov al, byte [edx + 0x92217d]
mov byte [ebp + 0x73], al
test al, al
je case.0x48989e.9
movzx eax, al
add eax, 0xfffffffb
cmp eax, 0xc
ja case.0x48989e.9
movzx edx, byte [eax + 0x48a9bc]
jmp dword [edx*4 + 0x48a9a0]
cmp byte [ebp + 0x16], 3
mov cl, byte [ebp + 0x70]
setae al
and cl, 0x80
neg cl
sbb cl, cl
and cl, 6
lea eax, [eax + eax + 2]
xor al, cl
jmp 0x489986
cmp byte [ebp + 0x16], 3
mov al, byte [ebp + 0x70]
setae dl
and al, 0x80
neg al
sbb al, al
and al, 6
lea edx, [edx + edx + 2]
xor dl, al
add dl, 2
mov byte [ebp + 0x73], dl
jmp case.0x48989e.9
mov cl, byte [ebp + 0x16]
cmp cl, 4
jne 0x489907
test byte [ebp + 0x70], 0x10
mov eax, 0
sete al
lea eax, [eax*4 + 4]
jmp 0x489986
mov dl, byte [ebp + 0x70]
and dl, 0x10
jmp 0x48996f
movzx ecx, word [ebp + 0x70]
test cl, 8
je 0x48991f
mov eax, 8
jmp 0x489986
cmp byte [ebp + 0x16], 3
sbb eax, eax
and cl, 0x80
and eax, 0xfffffffe
movzx edx, cl
add eax, 4
neg edx
sbb edx, edx
and edx, 6
xor eax, edx
jmp 0x489986
cmp byte [ebp + 0x16], 3
mov cl, byte [ebp + 0x70]
setae al
and cl, 0x80
neg cl
sbb cl, cl
and cl, 6
lea eax, [eax + eax + 2]
xor al, cl
add al, 8
jmp 0x489986
mov cl, byte [ebp + 0x16]
cmp cl, 4
jne 0x489969
mov eax, 4
jmp 0x489986
mov dl, byte [ebp + 0x70]
and dl, 0x80
movzx eax, dl
neg eax
sbb eax, eax
and eax, 6
cmp cl, 3
sbb ecx, ecx
and ecx, 0xfffffffe
add ecx, 4
xor eax, ecx
mov byte [ebp + 0x73], al
mov al, bl
and al, 1
mov byte [esp + 0x1f], al
jne 0x48999f
cmp byte [ebp + 0x78], 6
jne 0x4899d0
mov byte [ebp + 0x78], 3
jmp 0x4899d0
mov dl, byte [esp + 0x18]
lea eax, [esp + 0x20]
push eax
mov esi, ebp
mov byte [ebp + 0x74], dl
call fcn.00420e40
mov bl, al
mov byte [esp + 0x14], bl
test bl, bl
jne 0x489ba4
movzx ecx, byte [ebp + 0x74]
mov edi, dword [esp + 0x20]
mov bl, byte [esp + 0x13]
mov dword [esp + 0x18], ecx
mov al, byte [ebp + 0x73]
test al, al
je 0x489aa2
movzx esi, al
lea eax, [ebp + 0x68]
lea edx, [esi + edi]
mov dword [eax], 0
mov dword [eax + 4], 0
cmp edx, 0x1000
ja 0x489a52
lea ecx, [esi - 1]
cmp ecx, 7
ja case.0x489a01.3
jmp dword [ecx*4 + 0x48a9cc]
mov ecx, dword [ebp + 8]
mov dl, byte [edi + ecx]
mov byte [eax], dl
jmp 0x489a72
mov ecx, dword [ebp + 8]
mov dx, word [edi + ecx]
mov word [eax], dx
jmp 0x489a72
mov ecx, dword [ebp + 8]
mov edx, dword [edi + ecx]
mov dword [eax], edx
jmp 0x489a72
mov ecx, dword [ebp + 8]
mov edx, dword [edi + ecx]
mov dword [eax], edx
mov ecx, dword [edi + ecx + 4]
mov dword [eax + 4], ecx
jmp 0x489a72
xor ecx, ecx
jmp 0x489a40
mov edx, dword [ebp + 8]
add edx, ecx
mov dl, byte [edx + edi]
mov byte [eax + ecx], dl
inc ecx
cmp ecx, esi
jb 0x489a40
jmp 0x489a72
push eax
mov eax, dword [esp + 0x1c]
mov edx, esi
mov ecx, ebp
call fcn.0041f730
mov bl, al
mov byte [esp + 0x14], bl
test bl, bl
jne 0x489ba4
mov bl, byte [esp + 0x13]
test bl, 4
je 0x489a9e
cmp byte [esi + ebp + 0x67], 0
jge 0x489a9e
mov eax, esi
sub eax, 1
je 0x489a8c
sub eax, 1
je 0x489a90
jmp 0x489a97
mov byte [ebp + 0x69], 0xff
or eax, 0xffffffff
mov word [ebp + 0x6a], ax
mov dword [ebp + 0x6c], 0xffffffff
add dword [esp + 0x18], esi
mov ecx, dword [esp + 0x18]
cmp ecx, 0xf
jbe 0x489ac0
mov bl, 0x1d
mov dword [ebp + 0xdc], 0
mov byte [esp + 0x14], bl
jmp 0x489ba4
movzx eax, word [ebp + 0x70]
test al, 0x20
je 0x489ad5
test byte [ebp + 0x13], 0x10
je 0x489b2e
xor eax, 0x20
mov word [ebp + 0x70], ax
mov byte [ebp + 0x74], cl
movzx esi, word [esp + 0x28]
shl esi, 4
mov edx, dword [esi + 0x922170]
mov ecx, ebp
call edx
mov bl, al
mov eax, dword [ebp + 0x18]
add dword [eax], 1
mov ecx, 0
mov byte [esp + 0x14], bl
adc dword [eax + 4], ecx
mov edx, dword [esi + 0x922178]
add dword [eax + 0x10], edx
adc dword [eax + 0x14], ecx
mov edx, dword [esi + 0x922174]
add dword [eax + 8], edx
adc dword [eax + 0xc], ecx
cmp bl, 8
jae 0x489b50
movzx eax, byte [ebp + 0x74]
cdq
add dword [ebp + 0x190], eax
adc dword [ebp + 0x194], edx
jmp 0x489b55
test bl, 8
jne 0x489b3b
mov bl, 0x16
mov byte [esp + 0x14], bl
jmp 0x489ba4
cmp byte [esp + 0x1f], 0
je 0x489ad5
cmp byte [ebp + 0x77], 0x10
jae 0x489ad5
mov bl, 0x16
mov byte [esp + 0x14], bl
jmp 0x489ba4
cmp bl, 0xa
je 0x489ba4
mov al, byte [ebp + 0x14]
test al, 6
je 0x489ba4
test al, 2
je 0x489b81
xor al, 2
mov byte [ebp + 0x14], al
cmp bl, 9
ja 0x489b81
or byte [ebp + 0x2f9], 0x40
mov bl, 0x11
mov dword [ebp + 0xdc], 2
mov byte [esp + 0x14], bl
mov al, byte [ebp + 0x14]
test al, 4
je 0x489ba4
xor al, 4
mov byte [ebp + 0x14], al
cmp bl, 9
ja 0x489ba1
mov al, byte [ebp + 0x12]
or byte [ebp + 0x2f8], al
mov bl, 0x11
mov byte [esp + 0x14], bl
mov byte [ebp + 0x12], cl
mov cl, byte [esp + 0x18]
mov byte [ebp + 0x74], cl
mov edi, dword [ebp + 0x44]
mov eax, dword [edi + 0x1e8]
mov edx, dword [ebp + 0x3c]
mov dword [esp + 0x28], eax
movzx eax, bl
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], edx
mov byte [esp + 0x1f], bl
cmp eax, 0x35
ja 0x489e8a
mov esi, edx
jmp 0x489be4
movzx eax, byte [eax + 0x48aa20]
xor ecx, ecx
lea edx, [ecx + 1]
jmp dword [eax*4 + 0x48a9ec]
cmp byte [esp + 0x1f], 0xa
jne 0x489e9b
test byte [ebp + 0x13], 2
je 0x48a817
mov ecx, dword [esp + 0x20]
add dword [ecx + 8], 1
adc dword [ecx + 0xc], 0
mov edx, dword [ecx + 0xc]
cmp edx, dword [ecx + 0x24]
ja 0x48a84c
jb 0x489ec1
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0x20]
jae 0x48a84c
mov edx, dword [ecx + 0x14]
mov esi, dword [esp + 0x18]
cmp edx, dword [esi + 0x1284]
jb 0x48a81b
ja 0x489ee5
mov eax, dword [ecx + 0x10]
cmp eax, dword [esi + 0x1280]
jbe 0x48a81b
mov edx, 4
xor al, al
cmp word [ebp + 0x1b2], dx
jae 0x489f00
xor eax, eax
mov word [ebp + 0x1b2], ax
mov al, 1
cmp word [ebp + 0x1fa], dx
jae 0x489f14
xor eax, eax
mov word [ebp + 0x1fa], ax
mov al, 1
cmp word [ebp + 0x212], dx
jae 0x489f28
xor eax, eax
mov word [ebp + 0x212], ax
mov al, 1
cmp word [ebp + 0x22a], dx
jae 0x489f3c
xor edx, edx
mov word [ebp + 0x22a], dx
mov al, 1
mov dl, byte [ebp + 0x16]
cmp dl, 4
je 0x48a692
mov edi, dword [ebp + 0x40]
cmp byte [edi + 0xc5], 0
jne 0x48a692
or byte [ebp + 0x248], 0xa
jmp 0x48a7ee
test al, al
jne 0x48a7ee
mov eax, dword [ebp + 0x40]
mov edi, dword [eax + 0x78c8]
mov dword [ebp + 0x1a0], edi
mov edi, dword [eax + 0x78cc]
mov dword [ebp + 0x1a4], edi
mov edi, dword [eax + 0x78d0]
mov dword [ebp + 0x1a8], edi
mov edi, dword [eax + 0x78d4]
mov dword [ebp + 0x1ac], edi
mov edi, dword [eax + 0x78d8]
mov dword [ebp + 0x1b0], edi
mov edi, dword [eax + 0x78dc]
mov dword [ebp + 0x1b4], edi
mov edi, dword [eax + 0x7910]
mov dword [ebp + 0x1e8], edi
mov edi, dword [eax + 0x7914]
mov dword [ebp + 0x1ec], edi
mov edi, dword [eax + 0x7918]
mov dword [ebp + 0x1f0], edi
mov edi, dword [eax + 0x791c]
mov dword [ebp + 0x1f4], edi
mov edi, dword [eax + 0x7920]
mov dword [ebp + 0x1f8], edi
mov edi, dword [eax + 0x7924]
mov dword [ebp + 0x1fc], edi
mov edi, dword [eax + 0x7928]
mov dword [ebp + 0x200], edi
mov edi, dword [eax + 0x792c]
mov dword [ebp + 0x204], edi
mov edi, dword [eax + 0x7930]
mov dword [ebp + 0x208], edi
mov edi, dword [eax + 0x7934]
mov dword [ebp + 0x20c], edi
mov edi, dword [eax + 0x7938]
mov dword [ebp + 0x210], edi
mov edi, dword [eax + 0x793c]
mov dword [ebp + 0x214], edi
mov edi, dword [eax + 0x7940]
mov dword [ebp + 0x218], edi
mov edi, dword [eax + 0x7944]
mov dword [ebp + 0x21c], edi
mov edi, dword [eax + 0x7948]
mov dword [ebp + 0x220], edi
mov edi, dword [eax + 0x794c]
mov dword [ebp + 0x224], edi
mov edi, dword [eax + 0x7950]
mov dword [ebp + 0x228], edi
mov eax, dword [eax + 0x7954]
mov dword [ebp + 0x22c], eax
cmp dl, 4
mov edx, dword [esi + 0x200]
jne 0x48a7dc
mov dword [ebp + 0x218], edx
mov eax, dword [esi + 0x204]
mov dword [ebp + 0x21c], eax
jmp 0x48a7ee
mov dword [ebp + 0x200], edx
mov eax, dword [esi + 0x204]
mov dword [ebp + 0x204], eax
cmp dword [ecx + 0x1c0], 1
ja 0x48a872
mov edx, dword [ecx + 0xc8]
add edx, dword [ecx + 0x10]
mov eax, dword [ecx + 0xcc]
adc eax, dword [ecx + 0x14]
mov dword [esi + 0x1280], edx
mov dword [esi + 0x1284], eax
jmp 0x48a81b
mov esi, dword [esp + 0x18]
cmp bl, 0x30
jb 0x48a825
cmp bl, 0x33
jbe 0x48a888
test byte [esi + 0x9c], 4
je 0x48a845
push 0
push 0
push 0
push ebp
call fcn.00488a70
mov bl, al
mov byte [esp + 0x14], bl
jmp 0x489bab
xor esi, esi
jmp 0x48949b
mov cl, bl
sub cl, 0x30
cmp cl, 3
ja 0x48a866
cmp bl, 0x32
jne 0x48a888
mov eax, dword [esp + 0x18]
or dword [eax + 0x9c], 0x40
mov al, 0x31
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4
mov dl, bl
sub dl, 0x30
cmp dl, 3
ja 0x48a894
cmp bl, 0x32
je 0x48a894
or dword [esi + 0x9c], 0x40
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4
pop edi
pop esi
pop ebp
mov al, 0x32
pop ebx
add esp, 0x28
ret 4