403a2b:	89 4d 08             	mov    %ecx,0x8(%ebp)
403a2e:	56                   	push   %esi
403a2f:	51                   	push   %ecx
403a30:	56                   	push   %esi
403a31:	53                   	push   %ebx
403a32:	e8 2d dc 01 00       	call   0x421664
403a37:	8b 4d 08             	mov    0x8(%ebp),%ecx
403a3a:	83 c4 10             	add    $0x10,%esp
403a3d:	2b ce                	sub    %esi,%ecx
403a3f:	2b de                	sub    %esi,%ebx
403a41:	89 4d 08             	mov    %ecx,0x8(%ebp)
403a44:	83 ef 01             	sub    $0x1,%edi
403a47:	75 e5                	jne    0x403a2e
403a49:	8b 7d 10             	mov    0x10(%ebp),%edi
403a4c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
403a4f:	8b 55 18             	mov    0x18(%ebp),%edx
403a52:	0f af fe             	imul   %esi,%edi
403a55:	0f af de             	imul   %esi,%ebx
403a58:	57                   	push   %edi
403a59:	03 da                	add    %edx,%ebx
403a5b:	6a 00                	push   $0x0
403a5d:	53                   	push   %ebx
403a5e:	e8 0d bc 02 00       	call   0x42f670
403a63:	8b 45 fc             	mov    -0x4(%ebp),%eax
403a66:	83 c4 0c             	add    $0xc,%esp
403a69:	5e                   	pop    %esi
403a6a:	5b                   	pop    %ebx
403a6b:	5f                   	pop    %edi
403a6c:	8b e5                	mov    %ebp,%esp
403a6e:	5d                   	pop    %ebp
403a6f:	c2 18 00             	ret    $0x18
403a72:	55                   	push   %ebp
403a73:	8b ec                	mov    %esp,%ebp
403a75:	8b 45 10             	mov    0x10(%ebp),%eax
403a78:	ff 75 0c             	push   0xc(%ebp)
403a7b:	f7 d8                	neg    %eax
403a7d:	ff 75 08             	push   0x8(%ebp)
403a80:	1b c0                	sbb    %eax,%eax
403a82:	83 e0 08             	and    $0x8,%eax
403a85:	50                   	push   %eax
403a86:	ff 15 54 b1 44 00    	call   *0x44b154
403a8c:	50                   	push   %eax
403a8d:	ff 15 48 b1 44 00    	call   *0x44b148
403a93:	5d                   	pop    %ebp
403a94:	c2 0c 00             	ret    $0xc
403a97:	55                   	push   %ebp
403a98:	8b ec                	mov    %esp,%ebp
403a9a:	53                   	push   %ebx
403a9b:	56                   	push   %esi
403a9c:	57                   	push   %edi
403a9d:	ff 75 0c             	push   0xc(%ebp)
403aa0:	33 db                	xor    %ebx,%ebx
403aa2:	ff 75 08             	push   0x8(%ebp)
403aa5:	39 5d 10             	cmp    %ebx,0x10(%ebp)
403aa8:	6a 10                	push   $0x10
403aaa:	58                   	pop    %eax
403aab:	6a 18                	push   $0x18
403aad:	59                   	pop    %ecx
403aae:	0f 45 c1             	cmovne %ecx,%eax
403ab1:	50                   	push   %eax
403ab2:	ff 15 54 b1 44 00    	call   *0x44b154
403ab8:	50                   	push   %eax
403ab9:	ff 15 48 b1 44 00    	call   *0x44b148
403abf:	8b f0                	mov    %eax,%esi
403ac1:	85 f6                	test   %esi,%esi
403ac3:	75 5e                	jne    0x403b23
403ac5:	ff 75 10             	push   0x10(%ebp)
403ac8:	ff 75 0c             	push   0xc(%ebp)
403acb:	e8 04 fe ff ff       	call   0x4038d4
403ad0:	8b f0                	mov    %eax,%esi
403ad2:	85 f6                	test   %esi,%esi
403ad4:	74 67                	je     0x403b3d
403ad6:	ff 75 08             	push   0x8(%ebp)
403ad9:	e8 73 00 00 00       	call   0x403b51
403ade:	8b f8                	mov    %eax,%edi
403ae0:	83 ff ff             	cmp    $0xffffffff,%edi
403ae3:	75 07                	jne    0x403aec
403ae5:	bb 57 00 07 80       	mov    $0x80070057,%ebx
403aea:	eb 3e                	jmp    0x403b2a
403aec:	56                   	push   %esi
403aed:	e8 5f 00 00 00       	call   0x403b51
403af2:	8b c8                	mov    %eax,%ecx
403af4:	83 f9 ff             	cmp    $0xffffffff,%ecx
403af7:	74 ec                	je     0x403ae5
403af9:	3b cf                	cmp    %edi,%ecx
403afb:	0f 47 c7             	cmova  %edi,%eax
403afe:	50                   	push   %eax
403aff:	ff 75 08             	push   0x8(%ebp)
403b02:	51                   	push   %ecx
403b03:	56                   	push   %esi
403b04:	e8 5b db 01 00       	call   0x421664
403b09:	8b 45 08             	mov    0x8(%ebp),%eax
403b0c:	83 c4 10             	add    $0x10,%esp
403b0f:	85 ff                	test   %edi,%edi
403b11:	74 08                	je     0x403b1b
403b13:	88 18                	mov    %bl,(%eax)
403b15:	40                   	inc    %eax
403b16:	83 ef 01             	sub    $0x1,%edi
403b19:	75 f8                	jne    0x403b13
403b1b:	ff 75 08             	push   0x8(%ebp)
403b1e:	e8 76 fe ff ff       	call   0x403999
403b23:	8b 45 14             	mov    0x14(%ebp),%eax
403b26:	89 30                	mov    %esi,(%eax)
403b28:	8b f3                	mov    %ebx,%esi
403b2a:	85 f6                	test   %esi,%esi
403b2c:	74 06                	je     0x403b34
403b2e:	56                   	push   %esi
403b2f:	e8 65 fe ff ff       	call   0x403999
403b34:	5f                   	pop    %edi
403b35:	5e                   	pop    %esi
403b36:	8b c3                	mov    %ebx,%eax
403b38:	5b                   	pop    %ebx
403b39:	5d                   	pop    %ebp
403b3a:	c2 10 00             	ret    $0x10
403b3d:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
403b42:	53                   	push   %ebx
403b43:	6a 61                	push   $0x61
403b45:	68 18 b8 44 00       	push   $0x44b818
403b4a:	e8 84 fc ff ff       	call   0x4037d3
403b4f:	eb e3                	jmp    0x403b34
403b51:	55                   	push   %ebp
403b52:	8b ec                	mov    %esp,%ebp
403b54:	ff 75 08             	push   0x8(%ebp)
403b57:	6a 00                	push   $0x0
403b59:	ff 15 54 b1 44 00    	call   *0x44b154
403b5f:	50                   	push   %eax
403b60:	ff 15 50 b1 44 00    	call   *0x44b150
403b66:	5d                   	pop    %ebp
403b67:	c2 04 00             	ret    $0x4
403b6a:	55                   	push   %ebp
403b6b:	8b ec                	mov    %esp,%ebp
403b6d:	51                   	push   %ecx
403b6e:	53                   	push   %ebx
403b6f:	33 db                	xor    %ebx,%ebx
403b71:	56                   	push   %esi
403b72:	8b 75 08             	mov    0x8(%ebp),%esi
403b75:	8b c3                	mov    %ebx,%eax
403b77:	89 45 fc             	mov    %eax,-0x4(%ebp)
403b7a:	57                   	push   %edi
403b7b:	8b fb                	mov    %ebx,%edi
403b7d:	85 f6                	test   %esi,%esi
403b7f:	74 37                	je     0x403bb8
403b81:	66 39 1e             	cmp    %bx,(%esi)
403b84:	74 28                	je     0x403bae
403b86:	56                   	push   %esi
403b87:	ff 15 64 b1 44 00    	call   *0x44b164
403b8d:	85 c0                	test   %eax,%eax
403b8f:	74 1a                	je     0x403bab
403b91:	8d 45 fc             	lea    -0x4(%ebp),%eax
403b94:	47                   	inc    %edi
403b95:	50                   	push   %eax
403b96:	56                   	push   %esi
403b97:	e8 5e f9 ff ff       	call   0x4034fa
403b9c:	85 c0                	test   %eax,%eax
403b9e:	78 0b                	js     0x403bab
403ba0:	8b 45 fc             	mov    -0x4(%ebp),%eax
403ba3:	8b f0                	mov    %eax,%esi
403ba5:	85 c0                	test   %eax,%eax
403ba7:	75 d8                	jne    0x403b81
403ba9:	eb 03                	jmp    0x403bae
403bab:	8b 45 fc             	mov    -0x4(%ebp),%eax
403bae:	85 c0                	test   %eax,%eax
403bb0:	74 06                	je     0x403bb8
403bb2:	50                   	push   %eax
403bb3:	e8 37 19 04 00       	call   0x4454ef
403bb8:	8b c7                	mov    %edi,%eax
403bba:	5f                   	pop    %edi
403bbb:	5e                   	pop    %esi
403bbc:	5b                   	pop    %ebx
403bbd:	8b e5                	mov    %ebp,%esp
403bbf:	5d                   	pop    %ebp
403bc0:	c2 08 00             	ret    $0x8
403bc3:	55                   	push   %ebp
403bc4:	8b ec                	mov    %esp,%ebp
403bc6:	81 ec 7c 06 00 00    	sub    $0x67c,%esp
403bcc:	a1 08 a0 46 00       	mov    0x46a008,%eax
403bd1:	33 c5                	xor    %ebp,%eax
403bd3:	89 45 fc             	mov    %eax,-0x4(%ebp)
403bd6:	8b 45 0c             	mov    0xc(%ebp),%eax
403bd9:	83 8d 94 f9 ff ff ff 	orl    $0xffffffff,-0x66c(%ebp)
403be0:	83 e0 01             	and    $0x1,%eax
403be3:	89 85 88 f9 ff ff    	mov    %eax,-0x678(%ebp)
403be9:	8b 45 0c             	mov    0xc(%ebp),%eax
403bec:	d1 e8                	shr    $1,%eax
403bee:	83 e0 01             	and    $0x1,%eax
403bf1:	53                   	push   %ebx
403bf2:	8b 5d 08             	mov    0x8(%ebp),%ebx
403bf5:	89 85 8c f9 ff ff    	mov    %eax,-0x674(%ebp)
403bfb:	8b 45 0c             	mov    0xc(%ebp),%eax
403bfe:	56                   	push   %esi
403bff:	57                   	push   %edi
403c00:	c1 e8 02             	shr    $0x2,%eax
403c03:	bf 08 02 00 00       	mov    $0x208,%edi
403c08:	83 e0 01             	and    $0x1,%eax
403c0b:	89 9d 90 f9 ff ff    	mov    %ebx,-0x670(%ebp)
403c11:	33 f6                	xor    %esi,%esi
403c13:	89 85 84 f9 ff ff    	mov    %eax,-0x67c(%ebp)
403c19:	21 b5 98 f9 ff ff    	and    %esi,-0x668(%ebp)
403c1f:	8d 85 ec fb ff ff    	lea    -0x414(%ebp),%eax
403c25:	57                   	push   %edi
403c26:	56                   	push   %esi
403c27:	50                   	push   %eax
403c28:	e8 43 ba 02 00       	call   0x42f670
403c2d:	57                   	push   %edi
403c2e:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
403c34:	56                   	push   %esi
403c35:	50                   	push   %eax
403c36:	e8 35 ba 02 00       	call   0x42f670
403c3b:	83 c4 18             	add    $0x18,%esp
403c3e:	53                   	push   %ebx
403c3f:	ff 15 6c b1 44 00    	call   *0x44b16c
403c45:	8b 3d e8 b0 44 00    	mov    0x44b0e8,%edi
403c4b:	8b d8                	mov    %eax,%ebx
403c4d:	83 fb ff             	cmp    $0xffffffff,%ebx
403c50:	75 32                	jne    0x403c84
403c52:	ff d7                	call   *%edi
403c54:	83 f8 02             	cmp    $0x2,%eax
403c57:	6a 03                	push   $0x3
403c59:	59                   	pop    %ecx
403c5a:	0f 44 c1             	cmove  %ecx,%eax
403c5d:	0f b7 f0             	movzwl %ax,%esi
403c60:	81 ce 00 00 07 80    	or     $0x80070000,%esi
403c66:	85 c0                	test   %eax,%eax
403c68:	0f 4e f0             	cmovle %eax,%esi
403c6b:	85 f6                	test   %esi,%esi
403c6d:	79 15                	jns    0x403c84
403c6f:	56                   	push   %esi
403c70:	68 c8 00 00 00       	push   $0xc8
403c75:	68 24 b8 44 00       	push   $0x44b824
403c7a:	e8 54 fb ff ff       	call   0x4037d3
403c7f:	e9 66 03 00 00       	jmp    0x403fea
403c84:	f6 c3 10             	test   $0x10,%bl
403c87:	0f 84 46 03 00 00    	je     0x403fd3
403c8d:	f6 c3 01             	test   $0x1,%bl
403c90:	74 37                	je     0x403cc9
403c92:	68 80 00 00 00       	push   $0x80
403c97:	ff b5 90 f9 ff ff    	push   -0x670(%ebp)
403c9d:	ff 15 68 b1 44 00    	call   *0x44b168
403ca3:	85 c0                	test   %eax,%eax
403ca5:	75 22                	jne    0x403cc9
403ca7:	ff d7                	call   *%edi
403ca9:	0f b7 f0             	movzwl %ax,%esi
403cac:	81 ce 00 00 07 80    	or     $0x80070000,%esi
403cb2:	85 c0                	test   %eax,%eax
403cb4:	0f 4e f0             	cmovle %eax,%esi
403cb7:	b8 05 40 00 80       	mov    $0x80004005,%eax
403cbc:	85 f6                	test   %esi,%esi
403cbe:	0f 49 f0             	cmovns %eax,%esi
403cc1:	56                   	push   %esi
403cc2:	68 d1 00 00 00       	push   $0xd1
403cc7:	eb ac                	jmp    0x403c75
403cc9:	83 bd 88 f9 ff ff 00 	cmpl   $0x0,-0x678(%ebp)
403cd0:	75 0d                	jne    0x403cdf
403cd2:	83 bd 8c f9 ff ff 00 	cmpl   $0x0,-0x674(%ebp)
403cd9:	0f 84 78 02 00 00    	je     0x403f57
403cdf:	8b 9d 84 f9 ff ff    	mov    -0x67c(%ebp),%ebx
403ce5:	85 db                	test   %ebx,%ebx
403ce7:	74 3b                	je     0x403d24
403ce9:	8d 85 ec fb ff ff    	lea    -0x414(%ebp),%eax
403cef:	50                   	push   %eax
403cf0:	68 04 01 00 00       	push   $0x104
403cf5:	ff 15 18 b1 44 00    	call   *0x44b118
403cfb:	85 c0                	test   %eax,%eax
403cfd:	75 25                	jne    0x403d24
403cff:	ff d7                	call   *%edi
403d01:	0f b7 f0             	movzwl %ax,%esi
403d04:	81 ce 00 00 07 80    	or     $0x80070000,%esi
403d0a:	85 c0                	test   %eax,%eax
403d0c:	0f 4e f0             	cmovle %eax,%esi
403d0f:	b8 05 40 00 80       	mov    $0x80004005,%eax
403d14:	85 f6                	test   %esi,%esi
403d16:	0f 49 f0             	cmovns %eax,%esi
403d19:	56                   	push   %esi
403d1a:	68 dc 00 00 00       	push   $0xdc
403d1f:	e9 51 ff ff ff       	jmp    0x403c75
403d24:	8d 85 98 f9 ff ff    	lea    -0x668(%ebp),%eax
403d2a:	50                   	push   %eax
403d2b:	68 30 b8 44 00       	push   $0x44b830
403d30:	ff b5 90 f9 ff ff    	push   -0x670(%ebp)
403d36:	e8 3e f0 ff ff       	call   0x402d79
403d3b:	8b f0                	mov    %eax,%esi
403d3d:	85 f6                	test   %esi,%esi
403d3f:	0f 88 a5 02 00 00    	js     0x403fea
403d45:	8d 85 9c f9 ff ff    	lea    -0x664(%ebp),%eax
403d4b:	50                   	push   %eax
403d4c:	ff b5 98 f9 ff ff    	push   -0x668(%ebp)
403d52:	ff 15 74 b1 44 00    	call   *0x44b174
403d58:	89 85 94 f9 ff ff    	mov    %eax,-0x66c(%ebp)
403d5e:	83 f8 ff             	cmp    $0xffffffff,%eax
403d61:	75 25                	jne    0x403d88
403d63:	ff d7                	call   *%edi
403d65:	0f b7 f0             	movzwl %ax,%esi
403d68:	81 ce 00 00 07 80    	or     $0x80070000,%esi
403d6e:	85 c0                	test   %eax,%eax
403d70:	0f 4e f0             	cmovle %eax,%esi
403d73:	b8 05 40 00 80       	mov    $0x80004005,%eax
403d78:	85 f6                	test   %esi,%esi
403d7a:	0f 49 f0             	cmovns %eax,%esi
403d7d:	56                   	push   %esi
403d7e:	68 e7 00 00 00       	push   $0xe7
403d83:	e9 ed fe ff ff       	jmp    0x403c75
403d88:	6a 2e                	push   $0x2e
403d8a:	5a                   	pop    %edx
403d8b:	66 3b 95 c8 f9 ff ff 	cmp    -0x638(%ebp),%dx
403d92:	75 25                	jne    0x403db9
403d94:	33 c9                	xor    %ecx,%ecx
403d96:	66 3b 8d ca f9 ff ff 	cmp    -0x636(%ebp),%cx
403d9d:	0f 84 19 01 00 00    	je     0x403ebc
403da3:	66 3b 95 ca f9 ff ff 	cmp    -0x636(%ebp),%dx
403daa:	75 0d                	jne    0x403db9
403dac:	66 3b 8d cc f9 ff ff 	cmp    -0x634(%ebp),%cx
403db3:	0f 84 03 01 00 00    	je     0x403ebc
403db9:	33 c0                	xor    %eax,%eax
403dbb:	66 89 85 ce fb ff ff 	mov    %ax,-0x432(%ebp)
403dc2:	8d 85 98 f9 ff ff    	lea    -0x668(%ebp),%eax
403dc8:	50                   	push   %eax
403dc9:	8d 85 c8 f9 ff ff    	lea    -0x638(%ebp),%eax
403dcf:	50                   	push   %eax
403dd0:	ff b5 90 f9 ff ff    	push   -0x670(%ebp)
403dd6:	e8 9e ef ff ff       	call   0x402d79
403ddb:	8b f0                	mov    %eax,%esi
403ddd:	85 f6                	test   %esi,%esi
403ddf:	0f 88 f3 01 00 00    	js     0x403fd8
403de5:	83 bd 8c f9 ff ff 00 	cmpl   $0x0,-0x674(%ebp)
403dec:	8a 85 9c f9 ff ff    	mov    -0x664(%ebp),%al
403df2:	74 2d                	je     0x403e21
403df4:	a8 10                	test   $0x10,%al
403df6:	74 29                	je     0x403e21
403df8:	8d 85 98 f9 ff ff    	lea    -0x668(%ebp),%eax
403dfe:	50                   	push   %eax
403dff:	e8 2a ed ff ff       	call   0x402b2e
403e04:	8b f0                	mov    %eax,%esi
403e06:	85 f6                	test   %esi,%esi
403e08:	0f 88 ca 01 00 00    	js     0x403fd8
403e0e:	ff 75 0c             	push   0xc(%ebp)
403e11:	ff b5 98 f9 ff ff    	push   -0x668(%ebp)
403e17:	e8 a7 fd ff ff       	call   0x403bc3
403e1c:	e9 95 00 00 00       	jmp    0x403eb6
403e21:	83 bd 88 f9 ff ff 00 	cmpl   $0x0,-0x678(%ebp)
403e28:	0f 84 88 00 00 00    	je     0x403eb6
403e2e:	a8 07                	test   $0x7,%al
403e30:	74 19                	je     0x403e4b
403e32:	68 80 00 00 00       	push   $0x80
403e37:	ff b5 98 f9 ff ff    	push   -0x668(%ebp)
403e3d:	ff 15 68 b1 44 00    	call   *0x44b168
403e43:	85 c0                	test   %eax,%eax
403e45:	0f 84 8e 00 00 00    	je     0x403ed9
403e4b:	ff b5 98 f9 ff ff    	push   -0x668(%ebp)
403e51:	ff 15 70 b1 44 00    	call   *0x44b170
403e57:	85 c0                	test   %eax,%eax