408eed:	85 f6                	test   %esi,%esi
408eef:	7e 30                	jle    0x408f21
408ef1:	8d 87 10 01 00 00    	lea    0x110(%edi),%eax
408ef7:	eb 07                	jmp    0x408f00
408ef9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
408f00:	8b 10                	mov    (%eax),%edx
408f02:	85 d2                	test   %edx,%edx
408f04:	0f 88 2e 01 00 00    	js     0x409038
408f0a:	3b 90 fc fe ff ff    	cmp    -0x104(%eax),%edx
408f10:	0f 8d 22 01 00 00    	jge    0x409038
408f16:	41                   	inc    %ecx
408f17:	83 c0 04             	add    $0x4,%eax
408f1a:	3b ce                	cmp    %esi,%ecx
408f1c:	7c e2                	jl     0x408f00
408f1e:	8b 57 08             	mov    0x8(%edi),%edx
408f21:	33 db                	xor    %ebx,%ebx
408f23:	85 f6                	test   %esi,%esi
408f25:	7e 48                	jle    0x408f6f
408f27:	b9 10 01 00 00       	mov    $0x110,%ecx
408f2c:	8d 64 24 00          	lea    0x0(%esp),%esp
408f30:	8d 87 fc fe ff ff    	lea    -0x104(%edi),%eax
408f36:	03 c1                	add    %ecx,%eax
408f38:	89 45 10             	mov    %eax,0x10(%ebp)
408f3b:	81 38 88 13 00 00    	cmpl   $0x1388,(%eax)
408f41:	75 45                	jne    0x408f88
408f43:	b8 ad 8b db 68       	mov    $0x68db8bad,%eax
408f48:	f7 ea                	imul   %edx
408f4a:	c1 fa 0b             	sar    $0xb,%edx
408f4d:	8b c2                	mov    %edx,%eax
408f4f:	c1 e8 1f             	shr    $0x1f,%eax
408f52:	03 c2                	add    %edx,%eax
408f54:	89 45 10             	mov    %eax,0x10(%ebp)
408f57:	8b d0                	mov    %eax,%edx
408f59:	8b 04 39             	mov    (%ecx,%edi,1),%eax
408f5c:	83 c1 04             	add    $0x4,%ecx
408f5f:	0f af c2             	imul   %edx,%eax
408f62:	03 d8                	add    %eax,%ebx
408f64:	4e                   	dec    %esi
408f65:	75 c9                	jne    0x408f30
408f67:	85 db                	test   %ebx,%ebx
408f69:	0f 88 c9 00 00 00    	js     0x409038
408f6f:	8b 47 04             	mov    0x4(%edi),%eax
408f72:	83 3c 98 00          	cmpl   $0x0,(%eax,%ebx,4)
408f76:	74 4d                	je     0x408fc5
408f78:	8b 45 08             	mov    0x8(%ebp),%eax
408f7b:	8b 08                	mov    (%eax),%ecx
408f7d:	8b 41 04             	mov    0x4(%ecx),%eax
408f80:	8b 04 98             	mov    (%eax,%ebx,4),%eax
408f83:	5f                   	pop    %edi
408f84:	5e                   	pop    %esi
408f85:	5b                   	pop    %ebx
408f86:	5d                   	pop    %ebp
408f87:	c3                   	ret
408f88:	8b 7d 10             	mov    0x10(%ebp),%edi
408f8b:	8b c2                	mov    %edx,%eax
408f8d:	99                   	cltd
408f8e:	f7 3f                	idivl  (%edi)
408f90:	8b 7d 0c             	mov    0xc(%ebp),%edi
408f93:	8b d0                	mov    %eax,%edx
408f95:	eb c2                	jmp    0x408f59
408f97:	8b 5d 08             	mov    0x8(%ebp),%ebx
408f9a:	8b 0b                	mov    (%ebx),%ecx
408f9c:	8b 01                	mov    (%ecx),%eax
408f9e:	83 f8 01             	cmp    $0x1,%eax
408fa1:	7f 6e                	jg     0x409011
408fa3:	8b 03                	mov    (%ebx),%eax
408fa5:	83 fe 02             	cmp    $0x2,%esi
408fa8:	0f 85 c2 65 03 00    	jne    0x43f570
408fae:	81 38 ff ff ff 7f    	cmpl   $0x7fffffff,(%eax)
408fb4:	0f 84 04 ff ff ff    	je     0x408ebe
408fba:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
408fc0:	e9 f9 fe ff ff       	jmp    0x408ebe
408fc5:	6a 10                	push   $0x10
408fc7:	e8 2a 80 01 00       	call   0x420ff6
408fcc:	8b f0                	mov    %eax,%esi
408fce:	83 c4 04             	add    $0x4,%esp
408fd1:	85 f6                	test   %esi,%esi
408fd3:	74 5f                	je     0x409034
408fd5:	6a 10                	push   $0x10
408fd7:	e8 1a 80 01 00       	call   0x420ff6
408fdc:	83 c4 04             	add    $0x4,%esp
408fdf:	85 c0                	test   %eax,%eax
408fe1:	74 4d                	je     0x409030
408fe3:	68 10 f9 48 00       	push   $0x48f910
408fe8:	8b c8                	mov    %eax,%ecx
408fea:	e8 52 ef ff ff       	call   0x407f41
408fef:	89 46 08             	mov    %eax,0x8(%esi)
408ff2:	c7 46 0c 04 00 00 00 	movl   $0x4,0xc(%esi)
408ff9:	8b 45 08             	mov    0x8(%ebp),%eax
408ffc:	5f                   	pop    %edi
408ffd:	8b 08                	mov    (%eax),%ecx
408fff:	8b 49 04             	mov    0x4(%ecx),%ecx
409002:	89 34 99             	mov    %esi,(%ecx,%ebx,4)
409005:	8b 08                	mov    (%eax),%ecx
409007:	5e                   	pop    %esi
409008:	8b 41 04             	mov    0x4(%ecx),%eax
40900b:	8b 04 98             	mov    (%eax,%ebx,4),%eax
40900e:	5b                   	pop    %ebx
40900f:	5d                   	pop    %ebp
409010:	c3                   	ret
409011:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
409016:	74 8b                	je     0x408fa3
409018:	48                   	dec    %eax
409019:	89 01                	mov    %eax,(%ecx)
40901b:	8b cb                	mov    %ebx,%ecx
40901d:	53                   	push   %ebx
40901e:	e8 18 fd ff ff       	call   0x408d3b
409023:	8b 03                	mov    (%ebx),%eax
409025:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40902b:	e9 73 ff ff ff       	jmp    0x408fa3
409030:	33 c0                	xor    %eax,%eax
409032:	eb bb                	jmp    0x408fef
409034:	33 f6                	xor    %esi,%esi
409036:	eb c1                	jmp    0x408ff9
409038:	33 c0                	xor    %eax,%eax
40903a:	e9 44 ff ff ff       	jmp    0x408f83
40903f:	cc                   	int3
409040:	55                   	push   %ebp
409041:	8b ec                	mov    %esp,%ebp
409043:	51                   	push   %ecx
409044:	53                   	push   %ebx
409045:	56                   	push   %esi
409046:	8b 75 08             	mov    0x8(%ebp),%esi
409049:	57                   	push   %edi
40904a:	8b 0e                	mov    (%esi),%ecx
40904c:	8b 01                	mov    (%ecx),%eax
40904e:	83 f8 01             	cmp    $0x1,%eax
409051:	0f 8f 4e 65 03 00    	jg     0x43f5a5
409057:	8b 06                	mov    (%esi),%eax
409059:	81 38 ff ff ff 7f    	cmpl   $0x7fffffff,(%eax)
40905f:	74 06                	je     0x409067
409061:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
409067:	8b 4d 10             	mov    0x10(%ebp),%ecx
40906a:	85 c9                	test   %ecx,%ecx
40906c:	74 36                	je     0x4090a4
40906e:	8b 06                	mov    (%esi),%eax
409070:	c7 80 10 02 00 00 00 	movl   $0x0,0x210(%eax)
409077:	00 00 00
40907a:	7e 28                	jle    0x4090a4
40907c:	8d 55 10             	lea    0x10(%ebp),%edx
40907f:	90                   	nop
409080:	8b 3e                	mov    (%esi),%edi
409082:	8d 52 04             	lea    0x4(%edx),%edx
409085:	8b 9f 10 02 00 00    	mov    0x210(%edi),%ebx
40908b:	83 fb 40             	cmp    $0x40,%ebx
40908e:	7d 11                	jge    0x4090a1
409090:	8b 02                	mov    (%edx),%eax
409092:	89 84 9f 10 01 00 00 	mov    %eax,0x110(%edi,%ebx,4)
409099:	8b 06                	mov    (%esi),%eax
40909b:	ff 80 10 02 00 00    	incl   0x210(%eax)
4090a1:	49                   	dec    %ecx
4090a2:	75 dc                	jne    0x409080
4090a4:	8b 0e                	mov    (%esi),%ecx
4090a6:	8b 59 08             	mov    0x8(%ecx),%ebx
4090a9:	85 db                	test   %ebx,%ebx
4090ab:	0f 84 f9 00 00 00    	je     0x4091aa
4090b1:	8b b9 0c 01 00 00    	mov    0x10c(%ecx),%edi
4090b7:	3b b9 10 02 00 00    	cmp    0x210(%ecx),%edi
4090bd:	0f 85 e7 00 00 00    	jne    0x4091aa
4090c3:	33 d2                	xor    %edx,%edx
4090c5:	85 ff                	test   %edi,%edi
4090c7:	7e 29                	jle    0x4090f2
4090c9:	8d 81 10 01 00 00    	lea    0x110(%ecx),%eax
4090cf:	90                   	nop
4090d0:	83 38 00             	cmpl   $0x0,(%eax)
4090d3:	0f 8c d1 00 00 00    	jl     0x4091aa
4090d9:	8b 30                	mov    (%eax),%esi
4090db:	3b b0 fc fe ff ff    	cmp    -0x104(%eax),%esi
4090e1:	8b 75 08             	mov    0x8(%ebp),%esi
4090e4:	0f 8d c0 00 00 00    	jge    0x4091aa
4090ea:	42                   	inc    %edx
4090eb:	83 c0 04             	add    $0x4,%eax
4090ee:	3b d7                	cmp    %edi,%edx
4090f0:	7c de                	jl     0x4090d0
4090f2:	33 d2                	xor    %edx,%edx
4090f4:	89 55 10             	mov    %edx,0x10(%ebp)
4090f7:	85 ff                	test   %edi,%edi
4090f9:	7e 4c                	jle    0x409147
4090fb:	b8 10 01 00 00       	mov    $0x110,%eax
409100:	89 45 08             	mov    %eax,0x8(%ebp)
409103:	05 fc fe ff ff       	add    $0xfffffefc,%eax
409108:	03 c1                	add    %ecx,%eax
40910a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40910d:	81 38 ea 03 00 00    	cmpl   $0x3ea,(%eax)
409113:	75 7b                	jne    0x409190
409115:	b8 41 dd b3 20       	mov    $0x20b3dd41,%eax
40911a:	f7 eb                	imul   %ebx
40911c:	c1 fa 07             	sar    $0x7,%edx
40911f:	8b da                	mov    %edx,%ebx
409121:	c1 eb 1f             	shr    $0x1f,%ebx
409124:	03 da                	add    %edx,%ebx
409126:	8b 45 08             	mov    0x8(%ebp),%eax
409129:	8b 55 10             	mov    0x10(%ebp),%edx
40912c:	8b 04 08             	mov    (%eax,%ecx,1),%eax
40912f:	0f af c3             	imul   %ebx,%eax
409132:	03 d0                	add    %eax,%edx
409134:	8b 45 08             	mov    0x8(%ebp),%eax
409137:	83 c0 04             	add    $0x4,%eax
40913a:	89 55 10             	mov    %edx,0x10(%ebp)
40913d:	89 45 08             	mov    %eax,0x8(%ebp)
409140:	4f                   	dec    %edi
409141:	75 c0                	jne    0x409103
409143:	85 d2                	test   %edx,%edx
409145:	78 63                	js     0x4091aa
409147:	8b 41 04             	mov    0x4(%ecx),%eax
40914a:	8d 1c 95 00 00 00 00 	lea    0x0(,%edx,4),%ebx
409151:	8b 0c 03             	mov    (%ebx,%eax,1),%ecx
409154:	85 c9                	test   %ecx,%ecx
409156:	75 48                	jne    0x4091a0
409158:	6a 10                	push   $0x10
40915a:	e8 97 7e 01 00       	call   0x420ff6
40915f:	8b f8                	mov    %eax,%edi
409161:	83 c4 04             	add    $0x4,%esp
409164:	85 ff                	test   %edi,%edi
409166:	74 34                	je     0x40919c
409168:	ff 75 0c             	push   0xc(%ebp)
40916b:	8b cf                	mov    %edi,%ecx
40916d:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
409174:	e8 47 09 00 00       	call   0x409ac0
409179:	8b 06                	mov    (%esi),%eax
40917b:	8b 40 04             	mov    0x4(%eax),%eax
40917e:	89 3c 03             	mov    %edi,(%ebx,%eax,1)
409181:	8b 0e                	mov    (%esi),%ecx
409183:	8b 41 04             	mov    0x4(%ecx),%eax
409186:	8b 04 03             	mov    (%ebx,%eax,1),%eax
409189:	5f                   	pop    %edi
40918a:	5e                   	pop    %esi
40918b:	5b                   	pop    %ebx
40918c:	8b e5                	mov    %ebp,%esp
40918e:	5d                   	pop    %ebp
40918f:	c3                   	ret
409190:	8b c3                	mov    %ebx,%eax
409192:	8b 5d fc             	mov    -0x4(%ebp),%ebx
409195:	99                   	cltd
409196:	f7 3b                	idivl  (%ebx)
409198:	8b d8                	mov    %eax,%ebx
40919a:	eb 8a                	jmp    0x409126
40919c:	33 ff                	xor    %edi,%edi
40919e:	eb d9                	jmp    0x409179
4091a0:	ff 75 0c             	push   0xc(%ebp)
4091a3:	e8 f4 0c 00 00       	call   0x409e9c
4091a8:	eb d7                	jmp    0x409181
4091aa:	33 c0                	xor    %eax,%eax
4091ac:	eb db                	jmp    0x409189
4091ae:	cc                   	int3
4091af:	cc                   	int3
4091b0:	55                   	push   %ebp
4091b1:	8b ec                	mov    %esp,%ebp
4091b3:	56                   	push   %esi
4091b4:	8b 75 08             	mov    0x8(%ebp),%esi
4091b7:	8b ce                	mov    %esi,%ecx
4091b9:	57                   	push   %edi
4091ba:	e8 01 01 00 00       	call   0x4092c0
4091bf:	8b 7d 0c             	mov    0xc(%ebp),%edi
4091c2:	85 ff                	test   %edi,%edi
4091c4:	74 23                	je     0x4091e9
4091c6:	8b 06                	mov    (%esi),%eax
4091c8:	c7 80 10 02 00 00 00 	movl   $0x0,0x210(%eax)
4091cf:	00 00 00
4091d2:	7e 15                	jle    0x4091e9
4091d4:	53                   	push   %ebx
4091d5:	8d 5d 0c             	lea    0xc(%ebp),%ebx
4091d8:	ff 73 04             	push   0x4(%ebx)
4091db:	8d 5b 04             	lea    0x4(%ebx),%ebx
4091de:	8b ce                	mov    %esi,%ecx
4091e0:	e8 a7 00 00 00       	call   0x40928c
4091e5:	4f                   	dec    %edi
4091e6:	75 f0                	jne    0x4091d8
4091e8:	5b                   	pop    %ebx
4091e9:	8b 0e                	mov    (%esi),%ecx
4091eb:	33 ff                	xor    %edi,%edi
4091ed:	8b 81 10 02 00 00    	mov    0x210(%ecx),%eax
4091f3:	89 81 0c 01 00 00    	mov    %eax,0x10c(%ecx)
4091f9:	8b 06                	mov    (%esi),%eax
4091fb:	c7 40 08 01 00 00 00 	movl   $0x1,0x8(%eax)
409202:	8b 06                	mov    (%esi),%eax
409204:	39 b8 0c 01 00 00    	cmp    %edi,0x10c(%eax)
40920a:	7e 34                	jle    0x409240
40920c:	8b c8                	mov    %eax,%ecx
40920e:	ba 0c 00 00 00       	mov    $0xc,%edx
409213:	8b 84 0a 04 01 00 00 	mov    0x104(%edx,%ecx,1),%eax
40921a:	89 04 0a             	mov    %eax,(%edx,%ecx,1)
40921d:	8b 0e                	mov    (%esi),%ecx
40921f:	8b 04 0a             	mov    (%edx,%ecx,1),%eax
409222:	0f af 41 08          	imul   0x8(%ecx),%eax
409226:	89 41 08             	mov    %eax,0x8(%ecx)
409229:	8b 0e                	mov    (%esi),%ecx
40922b:	81 79 08 00 00 00 01 	cmpl   $0x1000000,0x8(%ecx)
409232:	7f 54                	jg     0x409288
409234:	47                   	inc    %edi
409235:	83 c2 04             	add    $0x4,%edx
409238:	3b b9 0c 01 00 00    	cmp    0x10c(%ecx),%edi
40923e:	7c d3                	jl     0x409213
409240:	8b 06                	mov    (%esi),%eax
409242:	33 c9                	xor    %ecx,%ecx
409244:	ba 04 00 00 00       	mov    $0x4,%edx
409249:	8b 40 08             	mov    0x8(%eax),%eax
40924c:	f7 e2                	mul    %edx
40924e:	0f 90 c1             	seto   %cl
409251:	f7 d9                	neg    %ecx
409253:	0b c8                	or     %eax,%ecx
409255:	51                   	push   %ecx
409256:	e8 9b 7d 01 00       	call   0x420ff6
40925b:	8b 0e                	mov    (%esi),%ecx
40925d:	83 c4 04             	add    $0x4,%esp
409260:	89 41 04             	mov    %eax,0x4(%ecx)
409263:	33 c0                	xor    %eax,%eax
409265:	8b 0e                	mov    (%esi),%ecx
409267:	39 41 08             	cmp    %eax,0x8(%ecx)
40926a:	7e 16                	jle    0x409282
40926c:	8d 64 24 00          	lea    0x0(%esp),%esp
409270:	8b 49 04             	mov    0x4(%ecx),%ecx
409273:	c7 04 81 00 00 00 00 	movl   $0x0,(%ecx,%eax,4)
40927a:	40                   	inc    %eax
40927b:	8b 0e                	mov    (%esi),%ecx
40927d:	3b 41 08             	cmp    0x8(%ecx),%eax
409280:	7c ee                	jl     0x409270
409282:	b0 01                	mov    $0x1,%al
409284:	5f                   	pop    %edi
409285:	5e                   	pop    %esi
409286:	5d                   	pop    %ebp
409287:	c3                   	ret
409288:	32 c0                	xor    %al,%al
40928a:	eb f8                	jmp    0x409284
40928c:	55                   	push   %ebp
40928d:	8b ec                	mov    %esp,%ebp
40928f:	8b 11                	mov    (%ecx),%edx
409291:	56                   	push   %esi
409292:	8b b2 10 02 00 00    	mov    0x210(%edx),%esi
409298:	83 fe 40             	cmp    $0x40,%esi
40929b:	7d 19                	jge    0x4092b6
40929d:	8b 45 08             	mov    0x8(%ebp),%eax
4092a0:	89 84 b2 10 01 00 00 	mov    %eax,0x110(%edx,%esi,4)
4092a7:	8b 01                	mov    (%ecx),%eax
4092a9:	ff 80 10 02 00 00    	incl   0x210(%eax)
4092af:	b0 01                	mov    $0x1,%al
4092b1:	5e                   	pop    %esi
4092b2:	5d                   	pop    %ebp
4092b3:	c2 04 00             	ret    $0x4
4092b6:	32 c0                	xor    %al,%al
4092b8:	eb f7                	jmp    0x4092b1
4092ba:	cc                   	int3
4092bb:	cc                   	int3
4092bc:	cc                   	int3
4092bd:	cc                   	int3
4092be:	cc                   	int3
4092bf:	cc                   	int3
4092c0:	53                   	push   %ebx
4092c1:	56                   	push   %esi
4092c2:	8b d9                	mov    %ecx,%ebx