406db8:	0f 84 98 00 00 00    	je     0x406e56
406dbe:	3d 89 00 00 00       	cmp    $0x89,%eax
406dc3:	0f 84 8d 00 00 00    	je     0x406e56
406dc9:	3d 85 00 00 00       	cmp    $0x85,%eax
406dce:	0f 84 64 bd 07 00    	je     0x482b38
406dd4:	3d 86 00 00 00       	cmp    $0x86,%eax
406dd9:	0f 84 59 bd 07 00    	je     0x482b38
406ddf:	3d 8a 00 00 00       	cmp    $0x8a,%eax
406de4:	0f 84 4e bd 07 00    	je     0x482b38
406dea:	3d 8b 00 00 00       	cmp    $0x8b,%eax
406def:	0f 84 43 bd 07 00    	je     0x482b38
406df5:	83 f8 7d             	cmp    $0x7d,%eax
406df8:	74 5c                	je     0x406e56
406dfa:	3d 87 00 00 00       	cmp    $0x87,%eax
406dff:	74 55                	je     0x406e56
406e01:	3d 81 00 00 00       	cmp    $0x81,%eax
406e06:	74 44                	je     0x406e4c
406e08:	3d 82 00 00 00       	cmp    $0x82,%eax
406e0d:	74 3d                	je     0x406e4c
406e0f:	83 f8 55             	cmp    $0x55,%eax
406e12:	0f 84 f8 bc 07 00    	je     0x482b10
406e18:	83 f8 56             	cmp    $0x56,%eax
406e1b:	0f 84 ef bc 07 00    	je     0x482b10
406e21:	83 f8 5e             	cmp    $0x5e,%eax
406e24:	0f 84 e6 bc 07 00    	je     0x482b10
406e2a:	83 f8 01             	cmp    $0x1,%eax
406e2d:	0f 84 30 bd 07 00    	je     0x482b63
406e33:	83 f8 02             	cmp    $0x2,%eax
406e36:	0f 84 27 bd 07 00    	je     0x482b63
406e3c:	83 f8 1b             	cmp    $0x1b,%eax
406e3f:	0f 84 1e bd 07 00    	je     0x482b63
406e45:	33 c0                	xor    %eax,%eax
406e47:	5f                   	pop    %edi
406e48:	5e                   	pop    %esi
406e49:	5b                   	pop    %ebx
406e4a:	c9                   	leave
406e4b:	c3                   	ret
406e4c:	8b 45 0c             	mov    0xc(%ebp),%eax
406e4f:	40                   	inc    %eax
406e50:	50                   	push   %eax
406e51:	e9 f8 bc 07 00       	jmp    0x482b4e
406e56:	ff 75 0c             	push   0xc(%ebp)
406e59:	e9 f0 bc 07 00       	jmp    0x482b4e
406e5e:	55                   	push   %ebp
406e5f:	8b ec                	mov    %esp,%ebp
406e61:	56                   	push   %esi
406e62:	ff 75 08             	push   0x8(%ebp)
406e65:	8b f1                	mov    %ecx,%esi
406e67:	e8 81 00 00 00       	call   0x406eed
406e6c:	8b 46 04             	mov    0x4(%esi),%eax
406e6f:	89 46 28             	mov    %eax,0x28(%esi)
406e72:	c6 46 10 01          	movb   $0x1,0x10(%esi)
406e76:	5e                   	pop    %esi
406e77:	5d                   	pop    %ebp
406e78:	c2 04 00             	ret    $0x4
406e7b:	55                   	push   %ebp
406e7c:	8b ec                	mov    %esp,%ebp
406e7e:	51                   	push   %ecx
406e7f:	56                   	push   %esi
406e80:	57                   	push   %edi
406e81:	8b f9                	mov    %ecx,%edi
406e83:	e8 aa 1f 00 00       	call   0x408e32
406e88:	ff 75 08             	push   0x8(%ebp)
406e8b:	8d 4f 14             	lea    0x14(%edi),%ecx
406e8e:	e8 5a 00 00 00       	call   0x406eed
406e93:	8b 57 3c             	mov    0x3c(%edi),%edx
406e96:	51                   	push   %ecx
406e97:	8d 45 08             	lea    0x8(%ebp),%eax
406e9a:	50                   	push   %eax
406e9b:	8d 45 fc             	lea    -0x4(%ebp),%eax
406e9e:	50                   	push   %eax
406e9f:	51                   	push   %ecx
406ea0:	8b 4f 14             	mov    0x14(%edi),%ecx
406ea3:	e8 5f 00 00 00       	call   0x406f07
406ea8:	83 c4 10             	add    $0x10,%esp
406eab:	89 47 24             	mov    %eax,0x24(%edi)
406eae:	85 c0                	test   %eax,%eax
406eb0:	74 36                	je     0x406ee8
406eb2:	8d 77 30             	lea    0x30(%edi),%esi
406eb5:	56                   	push   %esi
406eb6:	51                   	push   %ecx
406eb7:	8b c8                	mov    %eax,%ecx
406eb9:	e8 84 1c 00 00       	call   0x408b42
406ebe:	8b 06                	mov    (%esi),%eax
406ec0:	40                   	inc    %eax
406ec1:	6b c0 03             	imul   $0x3,%eax,%eax
406ec4:	33 c9                	xor    %ecx,%ecx
406ec6:	6a 04                	push   $0x4
406ec8:	5a                   	pop    %edx
406ec9:	89 06                	mov    %eax,(%esi)
406ecb:	f7 e2                	mul    %edx
406ecd:	0f 90 c1             	seto   %cl
406ed0:	f7 d9                	neg    %ecx
406ed2:	0b c8                	or     %eax,%ecx
406ed4:	51                   	push   %ecx
406ed5:	e8 10 86 01 00       	call   0x41f4ea
406eda:	83 c4 0c             	add    $0xc,%esp
406edd:	89 47 2c             	mov    %eax,0x2c(%edi)
406ee0:	33 c0                	xor    %eax,%eax
406ee2:	5f                   	pop    %edi
406ee3:	5e                   	pop    %esi
406ee4:	c9                   	leave
406ee5:	c2 04 00             	ret    $0x4
406ee8:	8b 45 08             	mov    0x8(%ebp),%eax
406eeb:	eb f5                	jmp    0x406ee2
406eed:	55                   	push   %ebp
406eee:	8b ec                	mov    %esp,%ebp
406ef0:	56                   	push   %esi
406ef1:	8b f1                	mov    %ecx,%esi
406ef3:	3b 75 08             	cmp    0x8(%ebp),%esi
406ef6:	74 08                	je     0x406f00
406ef8:	ff 75 08             	push   0x8(%ebp)
406efb:	e8 47 6e 00 00       	call   0x40dd47
406f00:	8b c6                	mov    %esi,%eax
406f02:	5e                   	pop    %esi
406f03:	5d                   	pop    %ebp
406f04:	c2 04 00             	ret    $0x4
406f07:	55                   	push   %ebp
406f08:	8b ec                	mov    %esp,%ebp
406f0a:	b8 c4 11 00 00       	mov    $0x11c4,%eax
406f0f:	e8 8c 89 02 00       	call   0x42f8a0
406f14:	8b 45 0c             	mov    0xc(%ebp),%eax
406f17:	83 4d d8 ff          	orl    $0xffffffff,-0x28(%ebp)
406f1b:	83 4d e0 ff          	orl    $0xffffffff,-0x20(%ebp)
406f1f:	53                   	push   %ebx
406f20:	56                   	push   %esi
406f21:	8b da                	mov    %edx,%ebx
406f23:	57                   	push   %edi
406f24:	8b f9                	mov    %ecx,%edi
406f26:	33 c9                	xor    %ecx,%ecx
406f28:	33 d2                	xor    %edx,%edx
406f2a:	42                   	inc    %edx
406f2b:	8b f1                	mov    %ecx,%esi
406f2d:	89 5d ec             	mov    %ebx,-0x14(%ebp)
406f30:	89 7d f0             	mov    %edi,-0x10(%ebp)
406f33:	89 55 d0             	mov    %edx,-0x30(%ebp)
406f36:	89 4d f8             	mov    %ecx,-0x8(%ebp)
406f39:	89 75 fc             	mov    %esi,-0x4(%ebp)
406f3c:	89 4d e8             	mov    %ecx,-0x18(%ebp)
406f3f:	89 7d dc             	mov    %edi,-0x24(%ebp)
406f42:	85 c0                	test   %eax,%eax
406f44:	0f 84 23 05 00 00    	je     0x40746d
406f4a:	89 08                	mov    %ecx,(%eax)
406f4c:	8b 45 10             	mov    0x10(%ebp),%eax
406f4f:	85 c0                	test   %eax,%eax
406f51:	0f 84 bd 04 00 00    	je     0x407414
406f57:	89 08                	mov    %ecx,(%eax)
406f59:	c7 85 30 ff ff ff e0 	movl   $0x4ae7e0,-0xd0(%ebp)
406f60:	e7 4a 00
406f63:	c7 85 34 ff ff ff e0 	movl   $0x4ae8e0,-0xcc(%ebp)
406f6a:	e8 4a 00
406f6d:	c7 85 38 ff ff ff e0 	movl   $0x4ae9e0,-0xc8(%ebp)
406f74:	e9 4a 00
406f77:	c7 85 3c ff ff ff 20 	movl   $0x4aeb20,-0xc4(%ebp)
406f7e:	eb 4a 00
406f81:	f7 c3 80 85 00 d8    	test   $0xd8008580,%ebx
406f87:	0f 85 8e 04 00 00    	jne    0x40741b
406f8d:	f7 c3 00 00 01 00    	test   $0x10000,%ebx
406f93:	0f 85 8e 04 00 00    	jne    0x407427
406f99:	6a 28                	push   $0x28
406f9b:	5a                   	pop    %edx
406f9c:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
406f9f:	66 39 17             	cmp    %dx,(%edi)
406fa2:	0f 84 9a bc 07 00    	je     0x482c42
406fa8:	f7 c3 00 08 00 00    	test   $0x800,%ebx
406fae:	0f 84 82 04 00 00    	je     0x407436
406fb4:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
406fb8:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
406fbf:	0f 85 6a 04 00 00    	jne    0x40742f
406fc5:	f7 c3 00 20 00 00    	test   $0x2000,%ebx
406fcb:	0f 84 2f bf 07 00    	je     0x482f00
406fd1:	b9 00 00 80 01       	mov    $0x1800000,%ecx
406fd6:	8b c3                	mov    %ebx,%eax
406fd8:	23 c1                	and    %ecx,%eax
406fda:	3b c1                	cmp    %ecx,%eax
406fdc:	0f 84 5c 04 00 00    	je     0x40743e
406fe2:	8b c3                	mov    %ebx,%eax
406fe4:	6a 02                	push   $0x2
406fe6:	5a                   	pop    %edx
406fe7:	25 00 00 70 00       	and    $0x700000,%eax
406fec:	0f 85 2a bf 07 00    	jne    0x482f1c
406ff2:	89 55 ac             	mov    %edx,-0x54(%ebp)
406ff5:	33 c9                	xor    %ecx,%ecx
406ff7:	8d 85 40 ee ff ff    	lea    -0x11c0(%ebp),%eax
406ffd:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
407003:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
407009:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
40700f:	89 8d 7c ff ff ff    	mov    %ecx,-0x84(%ebp)
407015:	89 4d 80             	mov    %ecx,-0x80(%ebp)
407018:	89 8d 74 ff ff ff    	mov    %ecx,-0x8c(%ebp)
40701e:	89 8d 70 ff ff ff    	mov    %ecx,-0x90(%ebp)
407024:	89 8d 60 ff ff ff    	mov    %ecx,-0xa0(%ebp)
40702a:	89 8d 64 ff ff ff    	mov    %ecx,-0x9c(%ebp)
407030:	89 8d 5c ff ff ff    	mov    %ecx,-0xa4(%ebp)
407036:	89 4d a8             	mov    %ecx,-0x58(%ebp)
407039:	89 4d 84             	mov    %ecx,-0x7c(%ebp)
40703c:	8d 85 40 fe ff ff    	lea    -0x1c0(%ebp),%eax
407042:	8b cf                	mov    %edi,%ecx
407044:	c7 85 6c ff ff ff 00 	movl   $0x800,-0x94(%ebp)
40704b:	08 00 00
40704e:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
407054:	c7 85 68 ff ff ff 14 	movl   $0x14,-0x98(%ebp)
40705b:	00 00 00
40705e:	89 bd 48 ff ff ff    	mov    %edi,-0xb8(%ebp)
407064:	e8 15 1b 00 00       	call   0x408b7e
407069:	8d 04 47             	lea    (%edi,%eax,2),%eax
40706c:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%ebp)
407072:	8d 04 77             	lea    (%edi,%esi,2),%eax
407075:	89 45 c8             	mov    %eax,-0x38(%ebp)
407078:	89 45 dc             	mov    %eax,-0x24(%ebp)
40707b:	8d 85 40 ee ff ff    	lea    -0x11c0(%ebp),%eax
407081:	89 45 e8             	mov    %eax,-0x18(%ebp)
407084:	33 c9                	xor    %ecx,%ecx
407086:	b8 83 00 00 00       	mov    $0x83,%eax
40708b:	66 89 85 40 ee ff ff 	mov    %ax,-0x11c0(%ebp)
407092:	8d 45 d0             	lea    -0x30(%ebp),%eax
407095:	50                   	push   %eax
407096:	8d 85 30 ff ff ff    	lea    -0xd0(%ebp),%eax
40709c:	50                   	push   %eax
40709d:	51                   	push   %ecx
40709e:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4070a1:	50                   	push   %eax
4070a2:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4070a5:	50                   	push   %eax
4070a6:	8d 45 f4             	lea    -0xc(%ebp),%eax
4070a9:	50                   	push   %eax
4070aa:	8d 45 c4             	lea    -0x3c(%ebp),%eax
4070ad:	50                   	push   %eax
4070ae:	51                   	push   %ecx
4070af:	51                   	push   %ecx
4070b0:	51                   	push   %ecx
4070b1:	51                   	push   %ecx
4070b2:	8d 45 f8             	lea    -0x8(%ebp),%eax
4070b5:	50                   	push   %eax
4070b6:	8d 45 dc             	lea    -0x24(%ebp),%eax
4070b9:	89 4d 98             	mov    %ecx,-0x68(%ebp)
4070bc:	89 4d 88             	mov    %ecx,-0x78(%ebp)
4070bf:	89 4d 8c             	mov    %ecx,-0x74(%ebp)
4070c2:	89 8d 78 ff ff ff    	mov    %ecx,-0x88(%ebp)
4070c8:	89 8d 54 ff ff ff    	mov    %ecx,-0xac(%ebp)
4070ce:	50                   	push   %eax
4070cf:	8d 55 e8             	lea    -0x18(%ebp),%edx
4070d2:	8b cb                	mov    %ebx,%ecx
4070d4:	89 5d 90             	mov    %ebx,-0x70(%ebp)
4070d7:	e8 98 03 00 00       	call   0x407474
4070dc:	8b 75 f8             	mov    -0x8(%ebp),%esi
4070df:	83 c4 34             	add    $0x34,%esp
4070e2:	85 f6                	test   %esi,%esi
4070e4:	0f 85 64 c0 07 00    	jne    0x48314e
4070ea:	8b 4d d0             	mov    -0x30(%ebp),%ecx
4070ed:	89 4d d0             	mov    %ecx,-0x30(%ebp)
4070f0:	81 f9 00 00 01 00    	cmp    $0x10000,%ecx
4070f6:	0f 8f 46 03 00 00    	jg     0x407442
4070fc:	39 75 a8             	cmp    %esi,-0x58(%ebp)
4070ff:	0f 85 97 be 07 00    	jne    0x482f9c
407105:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
40710b:	0f af 85 60 ff ff ff 	imul   -0xa0(%ebp),%eax
407112:	03 c1                	add    %ecx,%eax
407114:	8d 34 45 38 00 00 00 	lea    0x38(,%eax,2),%esi
40711b:	56                   	push   %esi
40711c:	ff 15 dc bd 4b 00    	call   *0x4bbddc
407122:	8b d8                	mov    %eax,%ebx
407124:	59                   	pop    %ecx
407125:	85 db                	test   %ebx,%ebx
407127:	0f 84 f2 02 00 00    	je     0x40741f
40712d:	89 73 04             	mov    %esi,0x4(%ebx)
407130:	c7 03 45 52 43 50    	movl   $0x50435245,(%ebx)
407136:	8b 45 90             	mov    -0x70(%ebp),%eax
407139:	89 43 08             	mov    %eax,0x8(%ebx)
40713c:	8b 45 94             	mov    -0x6c(%ebp),%eax
40713f:	89 43 0c             	mov    %eax,0xc(%ebx)
407142:	8b 45 d8             	mov    -0x28(%ebp),%eax
407145:	89 43 10             	mov    %eax,0x10(%ebx)
407148:	8b 45 e0             	mov    -0x20(%ebp),%eax
40714b:	89 43 14             	mov    %eax,0x14(%ebx)
40714e:	33 c0                	xor    %eax,%eax
407150:	89 43 18             	mov    %eax,0x18(%ebx)
407153:	6a 1c                	push   $0x1c
407155:	58                   	pop    %eax
407156:	66 89 43 22          	mov    %ax,0x22(%ebx)
40715a:	66 8b 85 64 ff ff ff 	mov    -0x9c(%ebp),%ax
407161:	66 89 43 24          	mov    %ax,0x24(%ebx)
407165:	66 8b 85 60 ff ff ff 	mov    -0xa0(%ebp),%ax
40716c:	66 89 43 26          	mov    %ax,0x26(%ebx)
407170:	33 f6                	xor    %esi,%esi
407172:	89 73 30             	mov    %esi,0x30(%ebx)
407175:	89 73 34             	mov    %esi,0x34(%ebx)
407178:	33 c0                	xor    %eax,%eax
40717a:	89 43 28             	mov    %eax,0x28(%ebx)
40717d:	89 43 2c             	mov    %eax,0x2c(%ebx)
407180:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
407186:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
40718c:	89 75 88             	mov    %esi,-0x78(%ebp)
40718f:	89 75 8c             	mov    %esi,-0x74(%ebp)
407192:	89 b5 70 ff ff ff    	mov    %esi,-0x90(%ebp)
407198:	89 b5 78 ff ff ff    	mov    %esi,-0x88(%ebp)
40719e:	0f b7 43 22          	movzwl 0x22(%ebx),%eax
4071a2:	8d 14 43             	lea    (%ebx,%eax,2),%edx
4071a5:	89 95 5c ff ff ff    	mov    %edx,-0xa4(%ebp)
4071ab:	0f b7 43 24          	movzwl 0x24(%ebx),%eax
4071af:	0f b7 4b 26          	movzwl 0x26(%ebx),%ecx
4071b3:	0f af c8             	imul   %eax,%ecx
4071b6:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
4071bc:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
4071c2:	8b 85 60 ff ff ff    	mov    -0xa0(%ebp),%eax
4071c8:	8d 3c 4a             	lea    (%edx,%ecx,2),%edi
4071cb:	89 7d e0             	mov    %edi,-0x20(%ebp)
4071ce:	89 bd 44 ff ff ff    	mov    %edi,-0xbc(%ebp)
4071d4:	89 75 98             	mov    %esi,-0x68(%ebp)
4071d7:	89 75 9c             	mov    %esi,-0x64(%ebp)
4071da:	89 75 a0             	mov    %esi,-0x60(%ebp)
4071dd:	89 75 a4             	mov    %esi,-0x5c(%ebp)
4071e0:	89 b5 54 ff ff ff    	mov    %esi,-0xac(%ebp)
4071e6:	85 c0                	test   %eax,%eax
4071e8:	0f 8f c4 bd 07 00    	jg     0x482fb2
4071ee:	8b 45 c8             	mov    -0x38(%ebp),%eax
4071f1:	89 45 dc             	mov    %eax,-0x24(%ebp)
4071f4:	56                   	push   %esi
4071f5:	b8 83 00 00 00       	mov    $0x83,%eax
4071fa:	66 89 07             	mov    %ax,(%edi)
4071fd:	8b 4b 08             	mov    0x8(%ebx),%ecx
407200:	8d 85 30 ff ff ff    	lea    -0xd0(%ebp),%eax
407206:	50                   	push   %eax
407207:	56                   	push   %esi
407208:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40720b:	50                   	push   %eax
40720c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40720f:	50                   	push   %eax
407210:	8d 45 f4             	lea    -0xc(%ebp),%eax
407213:	50                   	push   %eax
407214:	8d 45 c4             	lea    -0x3c(%ebp),%eax
407217:	50                   	push   %eax
407218:	56                   	push   %esi
407219:	56                   	push   %esi
40721a:	56                   	push   %esi
40721b:	56                   	push   %esi
40721c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40721f:	50                   	push   %eax
407220:	8d 45 dc             	lea    -0x24(%ebp),%eax
407223:	50                   	push   %eax
407224:	8d 55 e8             	lea    -0x18(%ebp),%edx
407227:	89 7d e8             	mov    %edi,-0x18(%ebp)
40722a:	e8 45 02 00 00       	call   0x407474
40722f:	66 8b 85 70 ff ff ff 	mov    -0x90(%ebp),%ax
407236:	66 89 43 1e          	mov    %ax,0x1e(%ebx)
40723a:	66 8b 85 7c ff ff ff 	mov    -0x84(%ebp),%ax
407241:	66 89 43 20          	mov    %ax,0x20(%ebx)
407245:	66 8b 85 78 ff ff ff 	mov    -0x88(%ebp),%ax
40724c:	66 89 43 1c          	mov    %ax,0x1c(%ebx)
407250:	8b 45 94             	mov    -0x6c(%ebp),%eax