405da5:	8b 54 24 0c          	mov    0xc(%esp),%edx
405da9:	f7 d8                	neg    %eax
405dab:	83 d2 00             	adc    $0x0,%edx
405dae:	f7 da                	neg    %edx
405db0:	89 44 24 08          	mov    %eax,0x8(%esp)
405db4:	89 54 24 0c          	mov    %edx,0xc(%esp)
405db8:	e9 b7 00 00 00       	jmp    0x405e74
405dbd:	8a 44 2e ff          	mov    -0x1(%esi,%ebp,1),%al
405dc1:	8b d0                	mov    %eax,%edx
405dc3:	80 c2 d0             	add    $0xd0,%dl
405dc6:	80 ea 0a             	sub    $0xa,%dl
405dc9:	73 62                	jae    0x405e2d
405dcb:	8b f8                	mov    %eax,%edi
405dcd:	81 e7 ff 00 00 00    	and    $0xff,%edi
405dd3:	83 ef 30             	sub    $0x30,%edi
405dd6:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
405ddb:	75 09                	jne    0x405de6
405ddd:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
405de2:	72 49                	jb     0x405e2d
405de4:	eb 02                	jmp    0x405de8
405de6:	7c 45                	jl     0x405e2d
405de8:	81 7c 24 0c cc cc cc 	cmpl   $0xccccccc,0xc(%esp)
405def:	0c
405df0:	75 0c                	jne    0x405dfe
405df2:	81 7c 24 08 cc cc cc 	cmpl   $0xcccccccc,0x8(%esp)
405df9:	cc
405dfa:	76 04                	jbe    0x405e00
405dfc:	eb 2f                	jmp    0x405e2d
405dfe:	7f 2d                	jg     0x405e2d
405e00:	6a 00                	push   $0x0
405e02:	6a 0a                	push   $0xa
405e04:	8b 44 24 10          	mov    0x10(%esp),%eax
405e08:	8b 54 24 14          	mov    0x14(%esp),%edx
405e0c:	e8 73 fc ff ff       	call   0x405a84
405e11:	52                   	push   %edx
405e12:	50                   	push   %eax
405e13:	8b c7                	mov    %edi,%eax
405e15:	99                   	cltd
405e16:	03 04 24             	add    (%esp),%eax
405e19:	13 54 24 04          	adc    0x4(%esp),%edx
405e1d:	83 c4 08             	add    $0x8,%esp
405e20:	89 44 24 08          	mov    %eax,0x8(%esp)
405e24:	89 54 24 0c          	mov    %edx,0xc(%esp)
405e28:	45                   	inc    %ebp
405e29:	33 db                	xor    %ebx,%ebx
405e2b:	eb 90                	jmp    0x405dbd
405e2d:	80 7c 24 10 00       	cmpb   $0x0,0x10(%esp)
405e32:	74 17                	je     0x405e4b
405e34:	8b 44 24 08          	mov    0x8(%esp),%eax
405e38:	8b 54 24 0c          	mov    0xc(%esp),%edx
405e3c:	f7 d8                	neg    %eax
405e3e:	83 d2 00             	adc    $0x0,%edx
405e41:	f7 da                	neg    %edx
405e43:	89 44 24 08          	mov    %eax,0x8(%esp)
405e47:	89 54 24 0c          	mov    %edx,0xc(%esp)
405e4b:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
405e50:	75 05                	jne    0x405e57
405e52:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
405e57:	74 1b                	je     0x405e74
405e59:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
405e5e:	75 0a                	jne    0x405e6a
405e60:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
405e65:	0f 92 c0             	setb   %al
405e68:	eb 03                	jmp    0x405e6d
405e6a:	0f 9c c0             	setl   %al
405e6d:	3a 44 24 10          	cmp    0x10(%esp),%al
405e71:	74 01                	je     0x405e74
405e73:	4d                   	dec    %ebp
405e74:	80 7c 2e ff 00       	cmpb   $0x0,-0x1(%esi,%ebp,1)
405e79:	0f 95 c0             	setne  %al
405e7c:	0a d8                	or     %al,%bl
405e7e:	74 07                	je     0x405e87
405e80:	8b 04 24             	mov    (%esp),%eax
405e83:	89 28                	mov    %ebp,(%eax)
405e85:	eb 07                	jmp    0x405e8e
405e87:	8b 04 24             	mov    (%esp),%eax
405e8a:	33 d2                	xor    %edx,%edx
405e8c:	89 10                	mov    %edx,(%eax)
405e8e:	8b 44 24 08          	mov    0x8(%esp),%eax
405e92:	8b 54 24 0c          	mov    0xc(%esp),%edx
405e96:	83 c4 14             	add    $0x14,%esp
405e99:	5d                   	pop    %ebp
405e9a:	5f                   	pop    %edi
405e9b:	5e                   	pop    %esi
405e9c:	5b                   	pop    %ebx
405e9d:	c3                   	ret
405e9e:	8b c0                	mov    %eax,%eax
405ea0:	85 c0                	test   %eax,%eax
405ea2:	74 03                	je     0x405ea7
405ea4:	8b 40 fc             	mov    -0x4(%eax),%eax
405ea7:	c3                   	ret
405ea8:	e8 f3 ff ff ff       	call   0x405ea0
405ead:	48                   	dec    %eax
405eae:	c3                   	ret
405eaf:	90                   	nop
405eb0:	55                   	push   %ebp
405eb1:	8b ec                	mov    %esp,%ebp
405eb3:	ff 75 08             	push   0x8(%ebp)
405eb6:	e8 a9 f8 ff ff       	call   0x405764
405ebb:	5d                   	pop    %ebp
405ebc:	c2 04 00             	ret    $0x4
405ebf:	90                   	nop
405ec0:	e9 9b f5 ff ff       	jmp    0x405460
405ec5:	c3                   	ret
405ec6:	8b c0                	mov    %eax,%eax
405ec8:	e8 af 02 00 00       	call   0x40617c
405ecd:	c3                   	ret
405ece:	8b c0                	mov    %eax,%eax
405ed0:	55                   	push   %ebp
405ed1:	8b ec                	mov    %esp,%ebp
405ed3:	83 c4 e0             	add    $0xffffffe0,%esp
405ed6:	53                   	push   %ebx
405ed7:	56                   	push   %esi
405ed8:	57                   	push   %edi
405ed9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405edc:	8b f2                	mov    %edx,%esi
405ede:	89 45 fc             	mov    %eax,-0x4(%ebp)
405ee1:	8b 5d fc             	mov    -0x4(%ebp),%ebx
405ee4:	8b 1b                	mov    (%ebx),%ebx
405ee6:	8b 45 08             	mov    0x8(%ebp),%eax
405ee9:	8b 38                	mov    (%eax),%edi
405eeb:	85 ff                	test   %edi,%edi
405eed:	7f 1a                	jg     0x405f09
405eef:	85 ff                	test   %edi,%edi
405ef1:	7d 07                	jge    0x405efa
405ef3:	b0 04                	mov    $0x4,%al
405ef5:	e8 0e ca ff ff       	call   0x402908
405efa:	8b 45 fc             	mov    -0x4(%ebp),%eax
405efd:	8b d6                	mov    %esi,%edx
405eff:	e8 c4 ff ff ff       	call   0x405ec8
405f04:	e9 4a 01 00 00       	jmp    0x406053
405f09:	33 c0                	xor    %eax,%eax
405f0b:	89 45 f0             	mov    %eax,-0x10(%ebp)
405f0e:	85 db                	test   %ebx,%ebx
405f10:	74 0b                	je     0x405f1d
405f12:	83 eb 04             	sub    $0x4,%ebx
405f15:	8b 03                	mov    (%ebx),%eax
405f17:	89 45 f0             	mov    %eax,-0x10(%ebp)
405f1a:	83 eb 04             	sub    $0x4,%ebx
405f1d:	33 c0                	xor    %eax,%eax
405f1f:	8a 46 01             	mov    0x1(%esi),%al
405f22:	01 c6                	add    %eax,%esi
405f24:	8b c6                	mov    %esi,%eax
405f26:	8b 50 02             	mov    0x2(%eax),%edx
405f29:	89 55 e8             	mov    %edx,-0x18(%ebp)
405f2c:	8b 50 06             	mov    0x6(%eax),%edx
405f2f:	85 d2                	test   %edx,%edx
405f31:	74 04                	je     0x405f37
405f33:	8b 32                	mov    (%edx),%esi
405f35:	eb 02                	jmp    0x405f39
405f37:	33 f6                	xor    %esi,%esi
405f39:	8b c7                	mov    %edi,%eax
405f3b:	f7 6d e8             	imull  -0x18(%ebp)
405f3e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405f41:	8b 45 e4             	mov    -0x1c(%ebp),%eax
405f44:	99                   	cltd
405f45:	f7 ff                	idiv   %edi
405f47:	3b 45 e8             	cmp    -0x18(%ebp),%eax
405f4a:	74 07                	je     0x405f53
405f4c:	b0 04                	mov    $0x4,%al
405f4e:	e8 b5 c9 ff ff       	call   0x402908
405f53:	83 45 e4 08          	addl   $0x8,-0x1c(%ebp)
405f57:	85 db                	test   %ebx,%ebx
405f59:	74 05                	je     0x405f60
405f5b:	83 3b 01             	cmpl   $0x1,(%ebx)
405f5e:	75 35                	jne    0x405f95
405f60:	89 5d e0             	mov    %ebx,-0x20(%ebp)
405f63:	3b 7d f0             	cmp    -0x10(%ebp),%edi
405f66:	7d 1d                	jge    0x405f85
405f68:	85 f6                	test   %esi,%esi
405f6a:	74 19                	je     0x405f85
405f6c:	8b c3                	mov    %ebx,%eax
405f6e:	83 c0 08             	add    $0x8,%eax
405f71:	8b d7                	mov    %edi,%edx
405f73:	0f af 55 e8          	imul   -0x18(%ebp),%edx
405f77:	03 c2                	add    %edx,%eax
405f79:	8b 4d f0             	mov    -0x10(%ebp),%ecx
405f7c:	2b cf                	sub    %edi,%ecx
405f7e:	8b d6                	mov    %esi,%edx
405f80:	e8 3b ff ff ff       	call   0x405ec0
405f85:	8d 45 e0             	lea    -0x20(%ebp),%eax
405f88:	8b 55 e4             	mov    -0x1c(%ebp),%edx
405f8b:	e8 5c c8 ff ff       	call   0x4027ec
405f90:	8b 5d e0             	mov    -0x20(%ebp),%ebx
405f93:	eb 5e                	jmp    0x405ff3
405f95:	ff 0b                	decl   (%ebx)
405f97:	8b 45 e4             	mov    -0x1c(%ebp),%eax
405f9a:	e8 0d c8 ff ff       	call   0x4027ac
405f9f:	8b d8                	mov    %eax,%ebx
405fa1:	8b 45 f0             	mov    -0x10(%ebp),%eax
405fa4:	89 45 ec             	mov    %eax,-0x14(%ebp)
405fa7:	3b 7d ec             	cmp    -0x14(%ebp),%edi
405faa:	7d 03                	jge    0x405faf
405fac:	89 7d ec             	mov    %edi,-0x14(%ebp)
405faf:	85 f6                	test   %esi,%esi
405fb1:	74 2a                	je     0x405fdd
405fb3:	8b 55 ec             	mov    -0x14(%ebp),%edx
405fb6:	0f af 55 e8          	imul   -0x18(%ebp),%edx
405fba:	8b c3                	mov    %ebx,%eax
405fbc:	83 c0 08             	add    $0x8,%eax
405fbf:	33 c9                	xor    %ecx,%ecx
405fc1:	e8 7a d2 ff ff       	call   0x403240
405fc6:	8b 45 ec             	mov    -0x14(%ebp),%eax
405fc9:	50                   	push   %eax
405fca:	8b 55 fc             	mov    -0x4(%ebp),%edx
405fcd:	8b 12                	mov    (%edx),%edx
405fcf:	8b c3                	mov    %ebx,%eax
405fd1:	83 c0 08             	add    $0x8,%eax
405fd4:	8b ce                	mov    %esi,%ecx
405fd6:	e8 d5 fe ff ff       	call   0x405eb0
405fdb:	eb 16                	jmp    0x405ff3
405fdd:	8b 4d ec             	mov    -0x14(%ebp),%ecx
405fe0:	0f af 4d e8          	imul   -0x18(%ebp),%ecx
405fe4:	8b d3                	mov    %ebx,%edx
405fe6:	83 c2 08             	add    $0x8,%edx
405fe9:	8b 45 fc             	mov    -0x4(%ebp),%eax
405fec:	8b 00                	mov    (%eax),%eax
405fee:	e8 2d ca ff ff       	call   0x402a20
405ff3:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
405ff9:	83 c3 04             	add    $0x4,%ebx
405ffc:	89 3b                	mov    %edi,(%ebx)
405ffe:	83 c3 04             	add    $0x4,%ebx
406001:	8b d7                	mov    %edi,%edx
406003:	2b 55 f0             	sub    -0x10(%ebp),%edx
406006:	0f af 55 e8          	imul   -0x18(%ebp),%edx
40600a:	8b 45 e8             	mov    -0x18(%ebp),%eax
40600d:	0f af 45 f0          	imul   -0x10(%ebp),%eax
406011:	03 c3                	add    %ebx,%eax
406013:	33 c9                	xor    %ecx,%ecx
406015:	e8 26 d2 ff ff       	call   0x403240
40601a:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
40601e:	7e 2e                	jle    0x40604e
406020:	83 45 08 04          	addl   $0x4,0x8(%ebp)
406024:	ff 4d f8             	decl   -0x8(%ebp)
406027:	4f                   	dec    %edi
406028:	85 ff                	test   %edi,%edi
40602a:	7c 22                	jl     0x40604e
40602c:	47                   	inc    %edi
40602d:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
406034:	8b 45 08             	mov    0x8(%ebp),%eax
406037:	50                   	push   %eax
406038:	8b 45 f4             	mov    -0xc(%ebp),%eax
40603b:	8d 04 83             	lea    (%ebx,%eax,4),%eax
40603e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
406041:	8b d6                	mov    %esi,%edx
406043:	e8 88 fe ff ff       	call   0x405ed0
406048:	ff 45 f4             	incl   -0xc(%ebp)
40604b:	4f                   	dec    %edi
40604c:	75 e6                	jne    0x406034
40604e:	8b 45 fc             	mov    -0x4(%ebp),%eax
406051:	89 18                	mov    %ebx,(%eax)
406053:	5f                   	pop    %edi
406054:	5e                   	pop    %esi
406055:	5b                   	pop    %ebx
406056:	8b e5                	mov    %ebp,%esp
406058:	5d                   	pop    %ebp
406059:	c2 04 00             	ret    $0x4
40605c:	54                   	push   %esp
40605d:	83 04 24 04          	addl   $0x4,(%esp)
406061:	e8 6a fe ff ff       	call   0x405ed0
406066:	c3                   	ret
406067:	90                   	nop
406068:	53                   	push   %ebx
406069:	85 c0                	test   %eax,%eax
40606b:	74 12                	je     0x40607f
40606d:	8b d8                	mov    %eax,%ebx
40606f:	83 eb 04             	sub    $0x4,%ebx
406072:	8b 1b                	mov    (%ebx),%ebx
406074:	53                   	push   %ebx
406075:	51                   	push   %ecx
406076:	33 c9                	xor    %ecx,%ecx
406078:	e8 0b 00 00 00       	call   0x406088
40607d:	5b                   	pop    %ebx
40607e:	c3                   	ret
40607f:	8b c1                	mov    %ecx,%eax
406081:	e8 f6 00 00 00       	call   0x40617c
406086:	5b                   	pop    %ebx
406087:	c3                   	ret
406088:	55                   	push   %ebp
406089:	8b ec                	mov    %esp,%ebp
40608b:	83 c4 f0             	add    $0xfffffff0,%esp
40608e:	53                   	push   %ebx
40608f:	56                   	push   %esi
406090:	57                   	push   %edi
406091:	8b f9                	mov    %ecx,%edi
406093:	89 55 f8             	mov    %edx,-0x8(%ebp)
406096:	89 45 fc             	mov    %eax,-0x4(%ebp)
406099:	8b 75 0c             	mov    0xc(%ebp),%esi
40609c:	33 db                	xor    %ebx,%ebx
40609e:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4060a2:	0f 84 ba 00 00 00    	je     0x406162
4060a8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4060ab:	89 45 f0             	mov    %eax,-0x10(%ebp)
4060ae:	85 ff                	test   %edi,%edi
4060b0:	7d 04                	jge    0x4060b6
4060b2:	03 f7                	add    %edi,%esi
4060b4:	33 ff                	xor    %edi,%edi
4060b6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4060b9:	83 e8 04             	sub    $0x4,%eax
4060bc:	8b 00                	mov    (%eax),%eax
4060be:	3b c7                	cmp    %edi,%eax
4060c0:	7d 02                	jge    0x4060c4
4060c2:	8b f8                	mov    %eax,%edi
4060c4:	8b d0                	mov    %eax,%edx
4060c6:	2b d7                	sub    %edi,%edx
4060c8:	3b f2                	cmp    %edx,%esi
4060ca:	7e 02                	jle    0x4060ce
4060cc:	8b f2                	mov    %edx,%esi
4060ce:	85 f6                	test   %esi,%esi
4060d0:	7d 02                	jge    0x4060d4
4060d2:	33 f6                	xor    %esi,%esi
4060d4:	85 f6                	test   %esi,%esi
4060d6:	0f 8e 86 00 00 00    	jle    0x406162
4060dc:	8b 45 f0             	mov    -0x10(%ebp),%eax
4060df:	0f b6 40 01          	movzbl 0x1(%eax),%eax
4060e3:	01 45 f0             	add    %eax,-0x10(%ebp)
4060e6:	8b 45 f0             	mov    -0x10(%ebp),%eax
4060e9:	8b 40 02             	mov    0x2(%eax),%eax
4060ec:	89 45 f4             	mov    %eax,-0xc(%ebp)
4060ef:	8b 45 f0             	mov    -0x10(%ebp),%eax
4060f2:	8b 40 06             	mov    0x6(%eax),%eax
4060f5:	85 c0                	test   %eax,%eax
4060f7:	74 07                	je     0x406100
4060f9:	8b 00                	mov    (%eax),%eax
4060fb:	89 45 f0             	mov    %eax,-0x10(%ebp)
4060fe:	eb 05                	jmp    0x406105
406100:	33 c0                	xor    %eax,%eax
406102:	89 45 f0             	mov    %eax,-0x10(%ebp)
406105:	8b c6                	mov    %esi,%eax
406107:	f7 6d f4             	imull  -0xc(%ebp)
40610a:	83 c0 08             	add    $0x8,%eax
40610d:	e8 9a c6 ff ff       	call   0x4027ac
406112:	8b d8                	mov    %eax,%ebx
406114:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
40611a:	83 c3 04             	add    $0x4,%ebx
40611d:	89 33                	mov    %esi,(%ebx)
40611f:	83 c3 04             	add    $0x4,%ebx
406122:	0f af 7d f4          	imul   -0xc(%ebp),%edi
406126:	01 7d fc             	add    %edi,-0x4(%ebp)
406129:	85 f6                	test   %esi,%esi
40612b:	7e 35                	jle    0x406162
40612d:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
406131:	74 1f                	je     0x406152
406133:	8b d6                	mov    %esi,%edx
406135:	0f af 55 f4          	imul   -0xc(%ebp),%edx
406139:	8b c3                	mov    %ebx,%eax
40613b:	33 c9                	xor    %ecx,%ecx
40613d:	e8 fe d0 ff ff       	call   0x403240
406142:	56                   	push   %esi
406143:	8b 4d f0             	mov    -0x10(%ebp),%ecx