452d7b:	8d 34 3f             	lea    (%edi,%edi,1),%esi
452d7e:	03 c6                	add    %esi,%eax
452d80:	3b d0                	cmp    %eax,%edx
452d82:	73 35                	jae    0x452db9
452d84:	8b 7d 28             	mov    0x28(%ebp),%edi
452d87:	66 8b 0a             	mov    (%edx),%cx
452d8a:	33 c0                	xor    %eax,%eax
452d8c:	85 db                	test   %ebx,%ebx
452d8e:	6a 02                	push   $0x2
452d90:	0f 95 c0             	setne  %al
452d93:	66 03 4d e8          	add    -0x18(%ebp),%cx
452d97:	8d 04 45 01 00 00 00 	lea    0x1(,%eax,2),%eax
452d9e:	66 03 c8             	add    %ax,%cx
452da1:	8b 47 20             	mov    0x20(%edi),%eax
452da4:	66 89 08             	mov    %cx,(%eax)
452da7:	58                   	pop    %eax
452da8:	01 47 20             	add    %eax,0x20(%edi)
452dab:	03 d0                	add    %eax,%edx
452dad:	8b 47 10             	mov    0x10(%edi),%eax
452db0:	03 c6                	add    %esi,%eax
452db2:	3b d0                	cmp    %eax,%edx
452db4:	72 d1                	jb     0x452d87
452db6:	8b 7d 98             	mov    -0x68(%ebp),%edi
452db9:	4b                   	dec    %ebx
452dba:	8b 45 e8             	mov    -0x18(%ebp),%eax
452dbd:	8b 55 f8             	mov    -0x8(%ebp),%edx
452dc0:	8b f7                	mov    %edi,%esi
452dc2:	8d 14 42             	lea    (%edx,%eax,2),%edx
452dc5:	8b 45 80             	mov    -0x80(%ebp),%eax
452dc8:	89 55 f8             	mov    %edx,-0x8(%ebp)
452dcb:	0f 89 11 ff ff ff    	jns    0x452ce2
452dd1:	8b 75 fc             	mov    -0x4(%ebp),%esi
452dd4:	33 ff                	xor    %edi,%edi
452dd6:	e9 c9 50 fc ff       	jmp    0x417ea4
452ddb:	8b ca                	mov    %edx,%ecx
452ddd:	2b cb                	sub    %ebx,%ecx
452ddf:	d1 f9                	sar    $1,%ecx
452de1:	41                   	inc    %ecx
452de2:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
452de5:	2b d0                	sub    %eax,%edx
452de7:	0f b7 42 02          	movzwl 0x2(%edx),%eax
452deb:	85 c0                	test   %eax,%eax
452ded:	75 04                	jne    0x452df3
452def:	8b df                	mov    %edi,%ebx
452df1:	eb 05                	jmp    0x452df8
452df3:	f7 d8                	neg    %eax
452df5:	8d 1c 43             	lea    (%ebx,%eax,2),%ebx
452df8:	8b 45 f8             	mov    -0x8(%ebp),%eax
452dfb:	6a 78                	push   $0x78
452dfd:	5e                   	pop    %esi
452dfe:	6a 02                	push   $0x2
452e00:	66 89 30             	mov    %si,(%eax)
452e03:	5e                   	pop    %esi
452e04:	03 c6                	add    %esi,%eax
452e06:	66 89 08             	mov    %cx,(%eax)
452e09:	03 c6                	add    %esi,%eax
452e0b:	66 89 4a 02          	mov    %cx,0x2(%edx)
452e0f:	8b d0                	mov    %eax,%edx
452e11:	89 45 f8             	mov    %eax,-0x8(%ebp)
452e14:	85 db                	test   %ebx,%ebx
452e16:	75 c3                	jne    0x452ddb
452e18:	eb 09                	jmp    0x452e23
452e1a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
452e1d:	83 c0 79             	add    $0x79,%eax
452e20:	66 89 01             	mov    %ax,(%ecx)
452e23:	8b 75 fc             	mov    -0x4(%ebp),%esi
452e26:	e9 84 50 fc ff       	jmp    0x417eaf
452e2b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
452e2e:	ba 81 00 00 00       	mov    $0x81,%edx
452e33:	83 c1 fc             	add    $0xfffffffc,%ecx
452e36:	8b f9                	mov    %ecx,%edi
452e38:	89 4d dc             	mov    %ecx,-0x24(%ebp)
452e3b:	8d 72 01             	lea    0x1(%edx),%esi
452e3e:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
452e42:	03 c0                	add    %eax,%eax
452e44:	2b f8                	sub    %eax,%edi
452e46:	0f b7 07             	movzwl (%edi),%eax
452e49:	66 3b c2             	cmp    %dx,%ax
452e4c:	74 05                	je     0x452e53
452e4e:	66 3b c6             	cmp    %si,%ax
452e51:	75 0e                	jne    0x452e61
452e53:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
452e57:	74 08                	je     0x452e61
452e59:	b8 83 00 00 00       	mov    $0x83,%eax
452e5e:	66 89 07             	mov    %ax,(%edi)
452e61:	0f b7 1f             	movzwl (%edi),%ebx
452e64:	66 3b da             	cmp    %dx,%bx
452e67:	74 b1                	je     0x452e1a
452e69:	66 3b de             	cmp    %si,%bx
452e6c:	74 ac                	je     0x452e1a
452e6e:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
452e72:	75 33                	jne    0x452ea7
452e74:	8b f7                	mov    %edi,%esi
452e76:	33 c0                	xor    %eax,%eax
452e78:	8b d1                	mov    %ecx,%edx
452e7a:	50                   	push   %eax
452e7b:	ff 75 28             	push   0x28(%ebp)
452e7e:	8b ce                	mov    %esi,%ecx
452e80:	ff 75 c4             	push   -0x3c(%ebp)
452e83:	e8 f9 55 fc ff       	call   0x418481
452e88:	8b 4d dc             	mov    -0x24(%ebp),%ecx
452e8b:	83 c4 0c             	add    $0xc,%esp
452e8e:	85 c0                	test   %eax,%eax
452e90:	75 0f                	jne    0x452ea1
452e92:	0f b7 46 02          	movzwl 0x2(%esi),%eax
452e96:	8d 34 46             	lea    (%esi,%eax,2),%esi
452e99:	66 83 3e 77          	cmpw   $0x77,(%esi)
452e9d:	75 08                	jne    0x452ea7
452e9f:	eb d5                	jmp    0x452e76
452ea1:	8d 43 05             	lea    0x5(%ebx),%eax
452ea4:	66 89 07             	mov    %ax,(%edi)
452ea7:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
452eab:	0f 84 ac 00 00 00    	je     0x452f5d
452eb1:	0f b7 07             	movzwl (%edi),%eax
452eb4:	ba 87 00 00 00       	mov    $0x87,%edx
452eb9:	66 3b c2             	cmp    %dx,%ax
452ebc:	74 17                	je     0x452ed5
452ebe:	83 c2 05             	add    $0x5,%edx
452ec1:	66 3b c2             	cmp    %dx,%ax
452ec4:	74 0f                	je     0x452ed5
452ec6:	40                   	inc    %eax
452ec7:	6a 7b                	push   $0x7b
452ec9:	66 89 07             	mov    %ax,(%edi)
452ecc:	58                   	pop    %eax
452ecd:	6a 02                	push   $0x2
452ecf:	66 89 01             	mov    %ax,(%ecx)
452ed2:	5a                   	pop    %edx
452ed3:	eb 60                	jmp    0x452f35
452ed5:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
452edb:	8b 5d f8             	mov    -0x8(%ebp),%ebx
452ede:	33 c0                	xor    %eax,%eax
452ee0:	ff 75 28             	push   0x28(%ebp)
452ee3:	8b f3                	mov    %ebx,%esi
452ee5:	8b cf                	mov    %edi,%ecx
452ee7:	ff 75 c4             	push   -0x3c(%ebp)
452eea:	66 89 03             	mov    %ax,(%ebx)
452eed:	2b f7                	sub    %edi,%esi
452eef:	6a 02                	push   $0x2
452ef1:	58                   	pop    %eax
452ef2:	8b d0                	mov    %eax,%edx
452ef4:	d1 fe                	sar    $1,%esi
452ef6:	e8 a6 57 fc ff       	call   0x4186a1
452efb:	83 c4 0c             	add    $0xc,%esp
452efe:	8d 04 36             	lea    (%esi,%esi,1),%eax
452f01:	50                   	push   %eax
452f02:	8d 47 04             	lea    0x4(%edi),%eax
452f05:	57                   	push   %edi
452f06:	50                   	push   %eax
452f07:	e8 14 51 fd ff       	call   0x428020
452f0c:	83 c4 0c             	add    $0xc,%esp
452f0f:	6a 04                	push   $0x4
452f11:	58                   	pop    %eax
452f12:	03 d8                	add    %eax,%ebx
452f14:	b8 84 00 00 00       	mov    $0x84,%eax
452f19:	6a 02                	push   $0x2
452f1b:	5a                   	pop    %edx
452f1c:	66 89 07             	mov    %ax,(%edi)
452f1f:	03 f2                	add    %edx,%esi
452f21:	6a 7b                	push   $0x7b
452f23:	58                   	pop    %eax
452f24:	66 89 03             	mov    %ax,(%ebx)
452f27:	03 da                	add    %edx,%ebx
452f29:	66 89 33             	mov    %si,(%ebx)
452f2c:	03 da                	add    %edx,%ebx
452f2e:	89 5d f8             	mov    %ebx,-0x8(%ebp)
452f31:	66 89 77 02          	mov    %si,0x2(%edi)
452f35:	8b 45 b4             	mov    -0x4c(%ebp),%eax
452f38:	85 c0                	test   %eax,%eax
452f3a:	74 08                	je     0x452f44
452f3c:	b9 94 00 00 00       	mov    $0x94,%ecx
452f41:	66 89 08             	mov    %cx,(%eax)
452f44:	8b 7d f8             	mov    -0x8(%ebp),%edi
452f47:	39 55 b0             	cmp    %edx,-0x50(%ebp)
452f4a:	0f 8d 4e 52 fc ff    	jge    0x41819e
452f50:	8b 75 fc             	mov    -0x4(%ebp),%esi
452f53:	33 d2                	xor    %edx,%edx
452f55:	89 55 e0             	mov    %edx,-0x20(%ebp)
452f58:	e9 57 4f fc ff       	jmp    0x417eb4
452f5d:	8b 45 e4             	mov    -0x1c(%ebp),%eax
452f60:	83 c0 79             	add    $0x79,%eax
452f63:	eb 03                	jmp    0x452f68
452f65:	0f b6 c0             	movzbl %al,%eax
452f68:	66 89 01             	mov    %ax,(%ecx)
452f6b:	e9 1b 04 00 00       	jmp    0x45338b
452f70:	b8 9d 00 00 00       	mov    $0x9d,%eax
452f75:	66 3b c8             	cmp    %ax,%cx
452f78:	0f 84 94 4c fc ff    	je     0x417c12
452f7e:	8b 45 0c             	mov    0xc(%ebp),%eax
452f81:	c7 00 0b 00 00 00    	movl   $0xb,(%eax)
452f87:	e9 26 17 00 00       	jmp    0x4546b2
452f8c:	3b 7d f4             	cmp    -0xc(%ebp),%edi
452f8f:	75 0d                	jne    0x452f9e
452f91:	83 fa ff             	cmp    $0xffffffff,%edx
452f94:	75 08                	jne    0x452f9e
452f96:	8d 43 64             	lea    0x64(%ebx),%eax
452f99:	e9 57 4c fc ff       	jmp    0x417bf5
452f9e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
452fa1:	8d 43 68             	lea    0x68(%ebx),%eax
452fa4:	6a 02                	push   $0x2
452fa6:	66 89 01             	mov    %ax,(%ecx)
452fa9:	58                   	pop    %eax
452faa:	03 c8                	add    %eax,%ecx
452fac:	50                   	push   %eax
452fad:	89 4d f8             	mov    %ecx,-0x8(%ebp)
452fb0:	8d 42 01             	lea    0x1(%edx),%eax
452fb3:	66 89 39             	mov    %di,(%ecx)
452fb6:	8b f9                	mov    %ecx,%edi
452fb8:	59                   	pop    %ecx
452fb9:	03 f9                	add    %ecx,%edi
452fbb:	f7 d8                	neg    %eax
452fbd:	1b c0                	sbb    %eax,%eax
452fbf:	23 c2                	and    %edx,%eax
452fc1:	89 45 c0             	mov    %eax,-0x40(%ebp)
452fc4:	66 89 07             	mov    %ax,(%edi)
452fc7:	eb 08                	jmp    0x452fd1
452fc9:	66 89 17             	mov    %dx,(%edi)
452fcc:	03 f9                	add    %ecx,%edi
452fce:	66 89 37             	mov    %si,(%edi)
452fd1:	03 f9                	add    %ecx,%edi
452fd3:	89 7d f8             	mov    %edi,-0x8(%ebp)
452fd6:	e9 c3 51 fc ff       	jmp    0x41819e
452fdb:	6a 1e                	push   $0x1e
452fdd:	8b c1                	mov    %ecx,%eax
452fdf:	5a                   	pop    %edx
452fe0:	2b c2                	sub    %edx,%eax
452fe2:	74 13                	je     0x452ff7
452fe4:	48                   	dec    %eax
452fe5:	74 0b                	je     0x452ff2
452fe7:	48                   	dec    %eax
452fe8:	74 04                	je     0x452fee
452fea:	33 c0                	xor    %eax,%eax
452fec:	eb 0c                	jmp    0x452ffa
452fee:	6a 27                	push   $0x27
452ff0:	eb 07                	jmp    0x452ff9
452ff2:	6a 1a                	push   $0x1a
452ff4:	5f                   	pop    %edi
452ff5:	eb 05                	jmp    0x452ffc
452ff7:	6a 0d                	push   $0xd
452ff9:	58                   	pop    %eax
452ffa:	8b f8                	mov    %eax,%edi
452ffc:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
453000:	8b 5d f8             	mov    -0x8(%ebp),%ebx
453003:	74 56                	je     0x45305b
453005:	8d 53 fe             	lea    -0x2(%ebx),%edx
453008:	66 8b 02             	mov    (%edx),%ax
45300b:	66 23 85 d4 fe ff ff 	and    -0x12c(%ebp),%ax
453012:	66 3b 85 b8 fe ff ff 	cmp    -0x148(%ebp),%ax
453019:	75 40                	jne    0x45305b
45301b:	66 8b 02             	mov    (%edx),%ax
45301e:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
453023:	66 23 c1             	and    %cx,%ax
453026:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
45302b:	66 3b c1             	cmp    %cx,%ax
45302e:	75 05                	jne    0x453035
453030:	6a 02                	push   $0x2
453032:	58                   	pop    %eax
453033:	2b d0                	sub    %eax,%edx
453035:	2b da                	sub    %edx,%ebx
453037:	d1 fb                	sar    $1,%ebx
453039:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
45303c:	50                   	push   %eax
45303d:	52                   	push   %edx
45303e:	8d 85 7c fe ff ff    	lea    -0x184(%ebp),%eax
453044:	50                   	push   %eax
453045:	e8 36 e0 fc ff       	call   0x421080
45304a:	8b 75 fc             	mov    -0x4(%ebp),%esi
45304d:	83 c4 0c             	add    $0xc,%esp
453050:	81 cb 00 00 00 10    	or     $0x10000000,%ebx
453056:	e9 ba 50 fc ff       	jmp    0x418115
45305b:	0f b7 5b fe          	movzwl -0x2(%ebx),%ebx
45305f:	6a 1e                	push   $0x1e
453061:	58                   	pop    %eax
453062:	66 3b c8             	cmp    %ax,%cx
453065:	0f 87 aa 50 fc ff    	ja     0x418115
45306b:	8b 45 f4             	mov    -0xc(%ebp),%eax
45306e:	39 45 b0             	cmp    %eax,-0x50(%ebp)
453071:	0f 8e 9e 50 fc ff    	jle    0x418115
453077:	8b 45 28             	mov    0x28(%ebp),%eax
45307a:	89 5d a4             	mov    %ebx,-0x5c(%ebp)
45307d:	8b 40 68             	mov    0x68(%eax),%eax
453080:	0b 85 74 ff ff ff    	or     -0x8c(%ebp),%eax
453086:	89 45 ac             	mov    %eax,-0x54(%ebp)
453089:	e9 87 50 fc ff       	jmp    0x418115
45308e:	0f b7 41 04          	movzwl 0x4(%ecx),%eax
453092:	0f b7 51 02          	movzwl 0x2(%ecx),%edx
453096:	89 45 ec             	mov    %eax,-0x14(%ebp)
453099:	e9 9c 50 fc ff       	jmp    0x41813a
45309e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4530a1:	3b 45 f4             	cmp    -0xc(%ebp),%eax
4530a4:	8b 75 ec             	mov    -0x14(%ebp),%esi
4530a7:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4530aa:	6a 02                	push   $0x2
4530ac:	8d 79 02             	lea    0x2(%ecx),%edi
4530af:	75 0b                	jne    0x4530bc
4530b1:	83 c0 25             	add    $0x25,%eax
4530b4:	66 89 01             	mov    %ax,(%ecx)
4530b7:	e9 bf 50 fc ff       	jmp    0x41817b
4530bc:	83 c0 27             	add    $0x27,%eax
4530bf:	66 89 01             	mov    %ax,(%ecx)
4530c2:	8b 45 c0             	mov    -0x40(%ebp),%eax
4530c5:	e9 2a 01 00 00       	jmp    0x4531f4
4530ca:	83 7d b0 01          	cmpl   $0x1,-0x50(%ebp)
4530ce:	75 3c                	jne    0x45310c
4530d0:	83 f8 ff             	cmp    $0xffffffff,%eax
4530d3:	75 0b                	jne    0x4530e0
4530d5:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4530d8:	83 c0 23             	add    $0x23,%eax
4530db:	e9 8d 50 fc ff       	jmp    0x41816d
4530e0:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4530e3:	83 f8 01             	cmp    $0x1,%eax
4530e6:	0f 84 26 4b fc ff    	je     0x417c12
4530ec:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4530ef:	8d 79 02             	lea    0x2(%ecx),%edi
4530f2:	8b 75 ec             	mov    -0x14(%ebp),%esi
4530f5:	83 c0 27             	add    $0x27,%eax
4530f8:	66 89 01             	mov    %ax,(%ecx)
4530fb:	8b 45 c0             	mov    -0x40(%ebp),%eax
4530fe:	48                   	dec    %eax
4530ff:	6a 02                	push   $0x2
453101:	59                   	pop    %ecx
453102:	66 89 07             	mov    %ax,(%edi)
453105:	03 f9                	add    %ecx,%edi
453107:	e9 70 50 fc ff       	jmp    0x41817c
45310c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
45310f:	8d 47 29             	lea    0x29(%edi),%eax
453112:	6a 02                	push   $0x2
453114:	5e                   	pop    %esi
453115:	66 89 01             	mov    %ax,(%ecx)
453118:	8d 79 02             	lea    0x2(%ecx),%edi
45311b:	8b 45 b0             	mov    -0x50(%ebp),%eax
45311e:	8b 4d c0             	mov    -0x40(%ebp),%ecx
453121:	66 89 07             	mov    %ax,(%edi)
453124:	03 fe                	add    %esi,%edi
453126:	85 c9                	test   %ecx,%ecx
453128:	79 5c                	jns    0x453186
45312a:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
45312e:	74 3b                	je     0x45316b
453130:	f7 c3 00 00 00 10    	test   $0x10000000,%ebx
453136:	74 33                	je     0x45316b
453138:	8b f3                	mov    %ebx,%esi
45313a:	83 e6 07             	and    $0x7,%esi
45313d:	8d 04 36             	lea    (%esi,%esi,1),%eax
453140:	50                   	push   %eax
453141:	8d 85 7c fe ff ff    	lea    -0x184(%ebp),%eax
453147:	50                   	push   %eax
453148:	57                   	push   %edi
453149:	e8 32 df fc ff       	call   0x421080
45314e:	8b 55 dc             	mov    -0x24(%ebp),%edx
453151:	8d 3c 77             	lea    (%edi,%esi,2),%edi
453154:	83 c4 0c             	add    $0xc,%esp