404ea4:	8a 44 2e ff          	mov    -0x1(%esi,%ebp,1),%al
404ea8:	e8 cf db ff ff       	call   0x402a7c
404ead:	3c 58                	cmp    $0x58,%al
404eaf:	74 1b                	je     0x404ecc
404eb1:	80 7c 2e ff 30       	cmpb   $0x30,-0x1(%esi,%ebp,1)
404eb6:	0f 85 da 00 00 00    	jne    0x404f96
404ebc:	8a 04 2e             	mov    (%esi,%ebp,1),%al
404ebf:	e8 b8 db ff ff       	call   0x402a7c
404ec4:	3c 58                	cmp    $0x58,%al
404ec6:	0f 85 ca 00 00 00    	jne    0x404f96
404ecc:	80 7c 2e ff 30       	cmpb   $0x30,-0x1(%esi,%ebp,1)
404ed1:	75 01                	jne    0x404ed4
404ed3:	45                   	inc    %ebp
404ed4:	45                   	inc    %ebp
404ed5:	8a 44 2e ff          	mov    -0x1(%esi,%ebp,1),%al
404ed9:	8b d0                	mov    %eax,%edx
404edb:	80 c2 d0             	add    $0xd0,%dl
404ede:	80 ea 0a             	sub    $0xa,%dl
404ee1:	72 12                	jb     0x404ef5
404ee3:	80 c2 f9             	add    $0xf9,%dl
404ee6:	80 ea 06             	sub    $0x6,%dl
404ee9:	72 17                	jb     0x404f02
404eeb:	80 c2 e6             	add    $0xe6,%dl
404eee:	80 ea 06             	sub    $0x6,%dl
404ef1:	72 1c                	jb     0x404f0f
404ef3:	eb 7a                	jmp    0x404f6f
404ef5:	8b f8                	mov    %eax,%edi
404ef7:	81 e7 ff 00 00 00    	and    $0xff,%edi
404efd:	83 ef 30             	sub    $0x30,%edi
404f00:	eb 18                	jmp    0x404f1a
404f02:	8b f8                	mov    %eax,%edi
404f04:	81 e7 ff 00 00 00    	and    $0xff,%edi
404f0a:	83 ef 37             	sub    $0x37,%edi
404f0d:	eb 0b                	jmp    0x404f1a
404f0f:	8b f8                	mov    %eax,%edi
404f11:	81 e7 ff 00 00 00    	and    $0xff,%edi
404f17:	83 ef 57             	sub    $0x57,%edi
404f1a:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
404f1f:	75 09                	jne    0x404f2a
404f21:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
404f26:	72 47                	jb     0x404f6f
404f28:	eb 02                	jmp    0x404f2c
404f2a:	7c 43                	jl     0x404f6f
404f2c:	81 7c 24 0c ff ff ff 	cmpl   $0xfffffff,0xc(%esp)
404f33:	0f
404f34:	75 09                	jne    0x404f3f
404f36:	83 7c 24 08 ff       	cmpl   $0xffffffff,0x8(%esp)
404f3b:	76 04                	jbe    0x404f41
404f3d:	eb 30                	jmp    0x404f6f
404f3f:	7f 2e                	jg     0x404f6f
404f41:	8b c7                	mov    %edi,%eax
404f43:	99                   	cltd
404f44:	52                   	push   %edx
404f45:	50                   	push   %eax
404f46:	8b 44 24 10          	mov    0x10(%esp),%eax
404f4a:	8b 54 24 14          	mov    0x14(%esp),%edx
404f4e:	0f a4 c2 04          	shld   $0x4,%eax,%edx
404f52:	c1 e0 04             	shl    $0x4,%eax
404f55:	03 04 24             	add    (%esp),%eax
404f58:	13 54 24 04          	adc    0x4(%esp),%edx
404f5c:	83 c4 08             	add    $0x8,%esp
404f5f:	89 44 24 08          	mov    %eax,0x8(%esp)
404f63:	89 54 24 0c          	mov    %edx,0xc(%esp)
404f67:	45                   	inc    %ebp
404f68:	33 db                	xor    %ebx,%ebx
404f6a:	e9 66 ff ff ff       	jmp    0x404ed5
404f6f:	80 7c 24 10 00       	cmpb   $0x0,0x10(%esp)
404f74:	0f 84 d3 00 00 00    	je     0x40504d
404f7a:	8b 44 24 08          	mov    0x8(%esp),%eax
404f7e:	8b 54 24 0c          	mov    0xc(%esp),%edx
404f82:	f7 d8                	neg    %eax
404f84:	83 d2 00             	adc    $0x0,%edx
404f87:	f7 da                	neg    %edx
404f89:	89 44 24 08          	mov    %eax,0x8(%esp)
404f8d:	89 54 24 0c          	mov    %edx,0xc(%esp)
404f91:	e9 b7 00 00 00       	jmp    0x40504d
404f96:	8a 44 2e ff          	mov    -0x1(%esi,%ebp,1),%al
404f9a:	8b d0                	mov    %eax,%edx
404f9c:	80 c2 d0             	add    $0xd0,%dl
404f9f:	80 ea 0a             	sub    $0xa,%dl
404fa2:	73 62                	jae    0x405006
404fa4:	8b f8                	mov    %eax,%edi
404fa6:	81 e7 ff 00 00 00    	and    $0xff,%edi
404fac:	83 ef 30             	sub    $0x30,%edi
404faf:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
404fb4:	75 09                	jne    0x404fbf
404fb6:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
404fbb:	72 49                	jb     0x405006
404fbd:	eb 02                	jmp    0x404fc1
404fbf:	7c 45                	jl     0x405006
404fc1:	81 7c 24 0c cc cc cc 	cmpl   $0xccccccc,0xc(%esp)
404fc8:	0c
404fc9:	75 0c                	jne    0x404fd7
404fcb:	81 7c 24 08 cc cc cc 	cmpl   $0xcccccccc,0x8(%esp)
404fd2:	cc
404fd3:	76 04                	jbe    0x404fd9
404fd5:	eb 2f                	jmp    0x405006
404fd7:	7f 2d                	jg     0x405006
404fd9:	6a 00                	push   $0x0
404fdb:	6a 0a                	push   $0xa
404fdd:	8b 44 24 10          	mov    0x10(%esp),%eax
404fe1:	8b 54 24 14          	mov    0x14(%esp),%edx
404fe5:	e8 3a fe ff ff       	call   0x404e24
404fea:	52                   	push   %edx
404feb:	50                   	push   %eax
404fec:	8b c7                	mov    %edi,%eax
404fee:	99                   	cltd
404fef:	03 04 24             	add    (%esp),%eax
404ff2:	13 54 24 04          	adc    0x4(%esp),%edx
404ff6:	83 c4 08             	add    $0x8,%esp
404ff9:	89 44 24 08          	mov    %eax,0x8(%esp)
404ffd:	89 54 24 0c          	mov    %edx,0xc(%esp)
405001:	45                   	inc    %ebp
405002:	33 db                	xor    %ebx,%ebx
405004:	eb 90                	jmp    0x404f96
405006:	80 7c 24 10 00       	cmpb   $0x0,0x10(%esp)
40500b:	74 17                	je     0x405024
40500d:	8b 44 24 08          	mov    0x8(%esp),%eax
405011:	8b 54 24 0c          	mov    0xc(%esp),%edx
405015:	f7 d8                	neg    %eax
405017:	83 d2 00             	adc    $0x0,%edx
40501a:	f7 da                	neg    %edx
40501c:	89 44 24 08          	mov    %eax,0x8(%esp)
405020:	89 54 24 0c          	mov    %edx,0xc(%esp)
405024:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
405029:	75 05                	jne    0x405030
40502b:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
405030:	74 1b                	je     0x40504d
405032:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
405037:	75 0a                	jne    0x405043
405039:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
40503e:	0f 92 c0             	setb   %al
405041:	eb 03                	jmp    0x405046
405043:	0f 9c c0             	setl   %al
405046:	3a 44 24 10          	cmp    0x10(%esp),%al
40504a:	74 01                	je     0x40504d
40504c:	4d                   	dec    %ebp
40504d:	80 7c 2e ff 00       	cmpb   $0x0,-0x1(%esi,%ebp,1)
405052:	0f 95 c0             	setne  %al
405055:	0a d8                	or     %al,%bl
405057:	74 07                	je     0x405060
405059:	8b 04 24             	mov    (%esp),%eax
40505c:	89 28                	mov    %ebp,(%eax)
40505e:	eb 07                	jmp    0x405067
405060:	8b 04 24             	mov    (%esp),%eax
405063:	33 d2                	xor    %edx,%edx
405065:	89 10                	mov    %edx,(%eax)
405067:	8b 44 24 08          	mov    0x8(%esp),%eax
40506b:	8b 54 24 0c          	mov    0xc(%esp),%edx
40506f:	83 c4 14             	add    $0x14,%esp
405072:	5d                   	pop    %ebp
405073:	5f                   	pop    %edi
405074:	5e                   	pop    %esi
405075:	5b                   	pop    %ebx
405076:	c3                   	ret
405077:	90                   	nop
405078:	85 c0                	test   %eax,%eax
40507a:	74 03                	je     0x40507f
40507c:	8b 40 fc             	mov    -0x4(%eax),%eax
40507f:	c3                   	ret
405080:	e8 f3 ff ff ff       	call   0x405078
405085:	48                   	dec    %eax
405086:	c3                   	ret
405087:	90                   	nop
405088:	55                   	push   %ebp
405089:	8b ec                	mov    %esp,%ebp
40508b:	ff 75 08             	push   0x8(%ebp)
40508e:	e8 71 fc ff ff       	call   0x404d04
405093:	5d                   	pop    %ebp
405094:	c2 04 00             	ret    $0x4
405097:	90                   	nop
405098:	e9 3b fa ff ff       	jmp    0x404ad8
40509d:	c3                   	ret
40509e:	8b c0                	mov    %eax,%eax
4050a0:	e8 9b 01 00 00       	call   0x405240
4050a5:	c3                   	ret
4050a6:	8b c0                	mov    %eax,%eax
4050a8:	55                   	push   %ebp
4050a9:	8b ec                	mov    %esp,%ebp
4050ab:	83 c4 e0             	add    $0xffffffe0,%esp
4050ae:	53                   	push   %ebx
4050af:	56                   	push   %esi
4050b0:	57                   	push   %edi
4050b1:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4050b4:	8b f2                	mov    %edx,%esi
4050b6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4050b9:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4050bc:	8b 1b                	mov    (%ebx),%ebx
4050be:	8b 45 08             	mov    0x8(%ebp),%eax
4050c1:	8b 38                	mov    (%eax),%edi
4050c3:	85 ff                	test   %edi,%edi
4050c5:	7f 1a                	jg     0x4050e1
4050c7:	85 ff                	test   %edi,%edi
4050c9:	7d 07                	jge    0x4050d2
4050cb:	b0 04                	mov    $0x4,%al
4050cd:	e8 7e d7 ff ff       	call   0x402850
4050d2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4050d5:	8b d6                	mov    %esi,%edx
4050d7:	e8 c4 ff ff ff       	call   0x4050a0
4050dc:	e9 4a 01 00 00       	jmp    0x40522b
4050e1:	33 c0                	xor    %eax,%eax
4050e3:	89 45 f0             	mov    %eax,-0x10(%ebp)
4050e6:	85 db                	test   %ebx,%ebx
4050e8:	74 0b                	je     0x4050f5
4050ea:	83 eb 04             	sub    $0x4,%ebx
4050ed:	8b 03                	mov    (%ebx),%eax
4050ef:	89 45 f0             	mov    %eax,-0x10(%ebp)
4050f2:	83 eb 04             	sub    $0x4,%ebx
4050f5:	33 c0                	xor    %eax,%eax
4050f7:	8a 46 01             	mov    0x1(%esi),%al
4050fa:	01 c6                	add    %eax,%esi
4050fc:	8b c6                	mov    %esi,%eax
4050fe:	8b 50 02             	mov    0x2(%eax),%edx
405101:	89 55 e8             	mov    %edx,-0x18(%ebp)
405104:	8b 50 06             	mov    0x6(%eax),%edx
405107:	85 d2                	test   %edx,%edx
405109:	74 04                	je     0x40510f
40510b:	8b 32                	mov    (%edx),%esi
40510d:	eb 02                	jmp    0x405111
40510f:	33 f6                	xor    %esi,%esi
405111:	8b c7                	mov    %edi,%eax
405113:	f7 6d e8             	imull  -0x18(%ebp)
405116:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405119:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40511c:	99                   	cltd
40511d:	f7 ff                	idiv   %edi
40511f:	3b 45 e8             	cmp    -0x18(%ebp),%eax
405122:	74 07                	je     0x40512b
405124:	b0 04                	mov    $0x4,%al
405126:	e8 25 d7 ff ff       	call   0x402850
40512b:	83 45 e4 08          	addl   $0x8,-0x1c(%ebp)
40512f:	85 db                	test   %ebx,%ebx
405131:	74 05                	je     0x405138
405133:	83 3b 01             	cmpl   $0x1,(%ebx)
405136:	75 35                	jne    0x40516d
405138:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40513b:	3b 7d f0             	cmp    -0x10(%ebp),%edi
40513e:	7d 1d                	jge    0x40515d
405140:	85 f6                	test   %esi,%esi
405142:	74 19                	je     0x40515d
405144:	8b c3                	mov    %ebx,%eax
405146:	83 c0 08             	add    $0x8,%eax
405149:	8b d7                	mov    %edi,%edx
40514b:	0f af 55 e8          	imul   -0x18(%ebp),%edx
40514f:	03 c2                	add    %edx,%eax
405151:	8b 4d f0             	mov    -0x10(%ebp),%ecx
405154:	2b cf                	sub    %edi,%ecx
405156:	8b d6                	mov    %esi,%edx
405158:	e8 3b ff ff ff       	call   0x405098
40515d:	8d 45 e0             	lea    -0x20(%ebp),%eax
405160:	8b 55 e4             	mov    -0x1c(%ebp),%edx
405163:	e8 cc d5 ff ff       	call   0x402734
405168:	8b 5d e0             	mov    -0x20(%ebp),%ebx
40516b:	eb 5e                	jmp    0x4051cb
40516d:	ff 0b                	decl   (%ebx)
40516f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
405172:	e8 7d d5 ff ff       	call   0x4026f4
405177:	8b d8                	mov    %eax,%ebx
405179:	8b 45 f0             	mov    -0x10(%ebp),%eax
40517c:	89 45 ec             	mov    %eax,-0x14(%ebp)
40517f:	3b 7d ec             	cmp    -0x14(%ebp),%edi
405182:	7d 03                	jge    0x405187
405184:	89 7d ec             	mov    %edi,-0x14(%ebp)
405187:	85 f6                	test   %esi,%esi
405189:	74 2a                	je     0x4051b5
40518b:	8b 55 ec             	mov    -0x14(%ebp),%edx
40518e:	0f af 55 e8          	imul   -0x18(%ebp),%edx
405192:	8b c3                	mov    %ebx,%eax
405194:	83 c0 08             	add    $0x8,%eax
405197:	33 c9                	xor    %ecx,%ecx
405199:	e8 2e db ff ff       	call   0x402ccc
40519e:	8b 45 ec             	mov    -0x14(%ebp),%eax
4051a1:	50                   	push   %eax
4051a2:	8b 55 fc             	mov    -0x4(%ebp),%edx
4051a5:	8b 12                	mov    (%edx),%edx
4051a7:	8b c3                	mov    %ebx,%eax
4051a9:	83 c0 08             	add    $0x8,%eax
4051ac:	8b ce                	mov    %esi,%ecx
4051ae:	e8 d5 fe ff ff       	call   0x405088
4051b3:	eb 16                	jmp    0x4051cb
4051b5:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4051b8:	0f af 4d e8          	imul   -0x18(%ebp),%ecx
4051bc:	8b d3                	mov    %ebx,%edx
4051be:	83 c2 08             	add    $0x8,%edx
4051c1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4051c4:	8b 00                	mov    (%eax),%eax
4051c6:	e8 25 d7 ff ff       	call   0x4028f0
4051cb:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
4051d1:	83 c3 04             	add    $0x4,%ebx
4051d4:	89 3b                	mov    %edi,(%ebx)
4051d6:	83 c3 04             	add    $0x4,%ebx
4051d9:	8b d7                	mov    %edi,%edx
4051db:	2b 55 f0             	sub    -0x10(%ebp),%edx
4051de:	0f af 55 e8          	imul   -0x18(%ebp),%edx
4051e2:	8b 45 e8             	mov    -0x18(%ebp),%eax
4051e5:	0f af 45 f0          	imul   -0x10(%ebp),%eax
4051e9:	03 c3                	add    %ebx,%eax
4051eb:	33 c9                	xor    %ecx,%ecx
4051ed:	e8 da da ff ff       	call   0x402ccc
4051f2:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
4051f6:	7e 2e                	jle    0x405226
4051f8:	83 45 08 04          	addl   $0x4,0x8(%ebp)
4051fc:	ff 4d f8             	decl   -0x8(%ebp)
4051ff:	4f                   	dec    %edi
405200:	85 ff                	test   %edi,%edi
405202:	7c 22                	jl     0x405226
405204:	47                   	inc    %edi
405205:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
40520c:	8b 45 08             	mov    0x8(%ebp),%eax
40520f:	50                   	push   %eax
405210:	8b 45 f4             	mov    -0xc(%ebp),%eax
405213:	8d 04 83             	lea    (%ebx,%eax,4),%eax
405216:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405219:	8b d6                	mov    %esi,%edx
40521b:	e8 88 fe ff ff       	call   0x4050a8
405220:	ff 45 f4             	incl   -0xc(%ebp)
405223:	4f                   	dec    %edi
405224:	75 e6                	jne    0x40520c
405226:	8b 45 fc             	mov    -0x4(%ebp),%eax
405229:	89 18                	mov    %ebx,(%eax)
40522b:	5f                   	pop    %edi
40522c:	5e                   	pop    %esi
40522d:	5b                   	pop    %ebx
40522e:	8b e5                	mov    %ebp,%esp
405230:	5d                   	pop    %ebp
405231:	c2 04 00             	ret    $0x4
405234:	54                   	push   %esp
405235:	83 04 24 04          	addl   $0x4,(%esp)
405239:	e8 6a fe ff ff       	call   0x4050a8
40523e:	c3                   	ret
40523f:	90                   	nop
405240:	8b 08                	mov    (%eax),%ecx
405242:	85 c9                	test   %ecx,%ecx
405244:	74 33                	je     0x405279
405246:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
40524c:	f0 ff 49 f8          	lock decl -0x8(%ecx)
405250:	75 27                	jne    0x405279
405252:	50                   	push   %eax
405253:	89 c8                	mov    %ecx,%eax
405255:	31 c9                	xor    %ecx,%ecx
405257:	8a 4a 01             	mov    0x1(%edx),%cl
40525a:	8b 54 11 06          	mov    0x6(%ecx,%edx,1),%edx
40525e:	85 d2                	test   %edx,%edx
405260:	74 0e                	je     0x405270
405262:	8b 48 fc             	mov    -0x4(%eax),%ecx
405265:	85 c9                	test   %ecx,%ecx
405267:	74 07                	je     0x405270
405269:	8b 12                	mov    (%edx),%edx
40526b:	e8 68 f8 ff ff       	call   0x404ad8
405270:	83 e8 08             	sub    $0x8,%eax