401f39:	8b c3                	mov    %ebx,%eax
401f3b:	33 ff                	xor    %edi,%edi
401f3d:	85 c9                	test   %ecx,%ecx
401f3f:	76 16                	jbe    0x401f57
401f41:	89 38                	mov    %edi,(%eax)
401f43:	8d 40 10             	lea    0x10(%eax),%eax
401f46:	89 78 f4             	mov    %edi,-0xc(%eax)
401f49:	89 78 f8             	mov    %edi,-0x8(%eax)
401f4c:	83 e9 01             	sub    $0x1,%ecx
401f4f:	75 f0                	jne    0x401f41
401f51:	eb 04                	jmp    0x401f57
401f53:	33 ff                	xor    %edi,%edi
401f55:	8b df                	mov    %edi,%ebx
401f57:	39 7e 08             	cmp    %edi,0x8(%esi)
401f5a:	76 20                	jbe    0x401f7c
401f5c:	8b cf                	mov    %edi,%ecx
401f5e:	89 7d fc             	mov    %edi,-0x4(%ebp)
401f61:	8b 06                	mov    (%esi),%eax
401f63:	03 c1                	add    %ecx,%eax
401f65:	03 cb                	add    %ebx,%ecx
401f67:	50                   	push   %eax
401f68:	e8 91 00 00 00       	call   0x401ffe
401f6d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
401f70:	47                   	inc    %edi
401f71:	83 c1 10             	add    $0x10,%ecx
401f74:	89 4d fc             	mov    %ecx,-0x4(%ebp)
401f77:	3b 7e 08             	cmp    0x8(%esi),%edi
401f7a:	72 e5                	jb     0x401f61
401f7c:	8b 0e                	mov    (%esi),%ecx
401f7e:	85 c9                	test   %ecx,%ecx
401f80:	74 06                	je     0x401f88
401f82:	51                   	push   %ecx
401f83:	e8 96 fa ff ff       	call   0x401a1e
401f88:	8b 45 f8             	mov    -0x8(%ebp),%eax
401f8b:	89 1e                	mov    %ebx,(%esi)
401f8d:	89 46 04             	mov    %eax,0x4(%esi)
401f90:	eb 02                	jmp    0x401f94
401f92:	8b 1e                	mov    (%esi),%ebx
401f94:	8b 4e 08             	mov    0x8(%esi),%ecx
401f97:	8d 45 08             	lea    0x8(%ebp),%eax
401f9a:	c1 e1 04             	shl    $0x4,%ecx
401f9d:	50                   	push   %eax
401f9e:	03 cb                	add    %ebx,%ecx
401fa0:	e8 59 00 00 00       	call   0x401ffe
401fa5:	ff 46 08             	incl   0x8(%esi)
401fa8:	8d 4d 08             	lea    0x8(%ebp),%ecx
401fab:	e8 df f3 ff ff       	call   0x40138f
401fb0:	5f                   	pop    %edi
401fb1:	5e                   	pop    %esi
401fb2:	5b                   	pop    %ebx
401fb3:	c9                   	leave
401fb4:	c2 10 00             	ret    $0x10
401fb7:	55                   	push   %ebp
401fb8:	8b ec                	mov    %esp,%ebp
401fba:	53                   	push   %ebx
401fbb:	56                   	push   %esi
401fbc:	57                   	push   %edi
401fbd:	8b f1                	mov    %ecx,%esi
401fbf:	33 ff                	xor    %edi,%edi
401fc1:	6a 05                	push   $0x5
401fc3:	58                   	pop    %eax
401fc4:	89 46 0c             	mov    %eax,0xc(%esi)
401fc7:	89 46 04             	mov    %eax,0x4(%esi)
401fca:	89 7e 08             	mov    %edi,0x8(%esi)
401fcd:	e8 62 00 00 00       	call   0x402034
401fd2:	8b 5d 08             	mov    0x8(%ebp),%ebx
401fd5:	39 7b 08             	cmp    %edi,0x8(%ebx)
401fd8:	76 1b                	jbe    0x401ff5
401fda:	83 ec 10             	sub    $0x10,%esp
401fdd:	8b cb                	mov    %ebx,%ecx
401fdf:	8b c4                	mov    %esp,%eax
401fe1:	57                   	push   %edi
401fe2:	50                   	push   %eax
401fe3:	e8 a0 00 00 00       	call   0x402088
401fe8:	8b ce                	mov    %esi,%ecx
401fea:	e8 00 ff ff ff       	call   0x401eef
401fef:	47                   	inc    %edi
401ff0:	3b 7b 08             	cmp    0x8(%ebx),%edi
401ff3:	72 e5                	jb     0x401fda
401ff5:	5f                   	pop    %edi
401ff6:	8b c6                	mov    %esi,%eax
401ff8:	5e                   	pop    %esi
401ff9:	5b                   	pop    %ebx
401ffa:	5d                   	pop    %ebp
401ffb:	c2 04 00             	ret    $0x4
401ffe:	55                   	push   %ebp
401fff:	8b ec                	mov    %esp,%ebp
402001:	56                   	push   %esi
402002:	8b 75 08             	mov    0x8(%ebp),%esi
402005:	57                   	push   %edi
402006:	56                   	push   %esi
402007:	8b f9                	mov    %ecx,%edi
402009:	e8 56 12 00 00       	call   0x403264
40200e:	8d 46 04             	lea    0x4(%esi),%eax
402011:	50                   	push   %eax
402012:	8d 4f 04             	lea    0x4(%edi),%ecx
402015:	e8 4a 12 00 00       	call   0x403264
40201a:	8d 46 08             	lea    0x8(%esi),%eax
40201d:	50                   	push   %eax
40201e:	8d 4f 08             	lea    0x8(%edi),%ecx
402021:	e8 3e 12 00 00       	call   0x403264
402026:	8b 46 0c             	mov    0xc(%esi),%eax
402029:	89 47 0c             	mov    %eax,0xc(%edi)
40202c:	8b c7                	mov    %edi,%eax
40202e:	5f                   	pop    %edi
40202f:	5e                   	pop    %esi
402030:	5d                   	pop    %ebp
402031:	c2 04 00             	ret    $0x4
402034:	53                   	push   %ebx
402035:	56                   	push   %esi
402036:	57                   	push   %edi
402037:	8b f9                	mov    %ecx,%edi
402039:	33 db                	xor    %ebx,%ebx
40203b:	6a 10                	push   $0x10
40203d:	59                   	pop    %ecx
40203e:	8b 77 04             	mov    0x4(%edi),%esi
402041:	8b c6                	mov    %esi,%eax
402043:	f7 e1                	mul    %ecx
402045:	0f 90 c3             	seto   %bl
402048:	33 c9                	xor    %ecx,%ecx
40204a:	f7 db                	neg    %ebx
40204c:	0b d8                	or     %eax,%ebx
40204e:	83 c3 04             	add    $0x4,%ebx
402051:	0f 92 c1             	setb   %cl
402054:	f7 d9                	neg    %ecx
402056:	0b cb                	or     %ebx,%ecx
402058:	e8 7e 3a 00 00       	call   0x405adb
40205d:	85 c0                	test   %eax,%eax
40205f:	74 1f                	je     0x402080
402061:	89 30                	mov    %esi,(%eax)
402063:	8d 48 04             	lea    0x4(%eax),%ecx
402066:	8b c1                	mov    %ecx,%eax
402068:	85 f6                	test   %esi,%esi
40206a:	74 16                	je     0x402082
40206c:	33 d2                	xor    %edx,%edx
40206e:	89 10                	mov    %edx,(%eax)
402070:	8d 40 10             	lea    0x10(%eax),%eax
402073:	89 50 f4             	mov    %edx,-0xc(%eax)
402076:	89 50 f8             	mov    %edx,-0x8(%eax)
402079:	83 ee 01             	sub    $0x1,%esi
40207c:	75 f0                	jne    0x40206e
40207e:	eb 02                	jmp    0x402082
402080:	33 c9                	xor    %ecx,%ecx
402082:	89 0f                	mov    %ecx,(%edi)
402084:	5f                   	pop    %edi
402085:	5e                   	pop    %esi
402086:	5b                   	pop    %ebx
402087:	c3                   	ret
402088:	55                   	push   %ebp
402089:	8b ec                	mov    %esp,%ebp
40208b:	56                   	push   %esi
40208c:	8b 75 0c             	mov    0xc(%ebp),%esi
40208f:	57                   	push   %edi
402090:	8b f9                	mov    %ecx,%edi
402092:	3b 77 08             	cmp    0x8(%edi),%esi
402095:	0f 92 c1             	setb   %cl
402098:	e8 8e 37 00 00       	call   0x40582b
40209d:	8b 4d 08             	mov    0x8(%ebp),%ecx
4020a0:	c1 e6 04             	shl    $0x4,%esi
4020a3:	03 37                	add    (%edi),%esi
4020a5:	56                   	push   %esi
4020a6:	e8 0e fe ff ff       	call   0x401eb9
4020ab:	8b 45 08             	mov    0x8(%ebp),%eax
4020ae:	5f                   	pop    %edi
4020af:	5e                   	pop    %esi
4020b0:	5d                   	pop    %ebp
4020b1:	c2 08 00             	ret    $0x8
4020b4:	55                   	push   %ebp
4020b5:	8b ec                	mov    %esp,%ebp
4020b7:	56                   	push   %esi
4020b8:	8b f1                	mov    %ecx,%esi
4020ba:	83 3e 00             	cmpl   $0x0,(%esi)
4020bd:	75 05                	jne    0x4020c4
4020bf:	33 c0                	xor    %eax,%eax
4020c1:	40                   	inc    %eax
4020c2:	eb 18                	jmp    0x4020dc
4020c4:	ff 75 08             	push   0x8(%ebp)
4020c7:	ff 36                	push   (%esi)
4020c9:	ff 15 e4 20 41 00    	call   *0x4120e4
4020cf:	85 c0                	test   %eax,%eax
4020d1:	75 07                	jne    0x4020da
4020d3:	21 06                	and    %eax,(%esi)
4020d5:	21 46 04             	and    %eax,0x4(%esi)
4020d8:	eb e5                	jmp    0x4020bf
4020da:	33 c0                	xor    %eax,%eax
4020dc:	5e                   	pop    %esi
4020dd:	5d                   	pop    %ebp
4020de:	c2 04 00             	ret    $0x4
4020e1:	55                   	push   %ebp
4020e2:	8b ec                	mov    %esp,%ebp
4020e4:	83 ec 0c             	sub    $0xc,%esp
4020e7:	53                   	push   %ebx
4020e8:	56                   	push   %esi
4020e9:	8b f1                	mov    %ecx,%esi
4020eb:	57                   	push   %edi
4020ec:	89 75 f8             	mov    %esi,-0x8(%ebp)
4020ef:	8b 7e 08             	mov    0x8(%esi),%edi
4020f2:	3b 7e 04             	cmp    0x4(%esi),%edi
4020f5:	0f 82 91 00 00 00    	jb     0x40218c
4020fb:	47                   	inc    %edi
4020fc:	33 db                	xor    %ebx,%ebx
4020fe:	0f af 7e 0c          	imul   0xc(%esi),%edi
402102:	6a 04                	push   $0x4
402104:	59                   	pop    %ecx
402105:	8b c7                	mov    %edi,%eax
402107:	89 7d f4             	mov    %edi,-0xc(%ebp)
40210a:	f7 e1                	mul    %ecx
40210c:	0f 90 c3             	seto   %bl
40210f:	33 c9                	xor    %ecx,%ecx
402111:	f7 db                	neg    %ebx
402113:	0b d8                	or     %eax,%ebx
402115:	83 c3 04             	add    $0x4,%ebx
402118:	0f 92 c1             	setb   %cl
40211b:	f7 d9                	neg    %ecx
40211d:	0b cb                	or     %ebx,%ecx
40211f:	e8 b7 39 00 00       	call   0x405adb
402124:	85 c0                	test   %eax,%eax
402126:	74 13                	je     0x40213b
402128:	89 38                	mov    %edi,(%eax)
40212a:	8d 58 04             	lea    0x4(%eax),%ebx
40212d:	85 ff                	test   %edi,%edi
40212f:	74 0c                	je     0x40213d
402131:	8b cf                	mov    %edi,%ecx
402133:	33 c0                	xor    %eax,%eax
402135:	8b fb                	mov    %ebx,%edi
402137:	f3 ab                	rep stos %eax,%es:(%edi)
402139:	eb 02                	jmp    0x40213d
40213b:	33 db                	xor    %ebx,%ebx
40213d:	33 ff                	xor    %edi,%edi
40213f:	39 7e 08             	cmp    %edi,0x8(%esi)
402142:	76 17                	jbe    0x40215b
402144:	8b 06                	mov    (%esi),%eax
402146:	8b cf                	mov    %edi,%ecx
402148:	c1 e1 02             	shl    $0x2,%ecx
40214b:	03 c1                	add    %ecx,%eax
40214d:	03 cb                	add    %ebx,%ecx
40214f:	50                   	push   %eax
402150:	e8 0f 11 00 00       	call   0x403264
402155:	47                   	inc    %edi
402156:	3b 7e 08             	cmp    0x8(%esi),%edi
402159:	72 e9                	jb     0x402144
40215b:	8b 06                	mov    (%esi),%eax
40215d:	85 c0                	test   %eax,%eax
40215f:	74 21                	je     0x402182
402161:	8b 78 fc             	mov    -0x4(%eax),%edi
402164:	8d 04 b8             	lea    (%eax,%edi,4),%eax
402167:	85 ff                	test   %edi,%edi
402169:	74 17                	je     0x402182
40216b:	8b f0                	mov    %eax,%esi
40216d:	8d 76 fc             	lea    -0x4(%esi),%esi
402170:	8b 0e                	mov    (%esi),%ecx
402172:	e8 b6 38 00 00       	call   0x405a2d
402177:	83 26 00             	andl   $0x0,(%esi)
40217a:	83 ef 01             	sub    $0x1,%edi
40217d:	75 ee                	jne    0x40216d
40217f:	8b 75 f8             	mov    -0x8(%ebp),%esi
402182:	8b 45 f4             	mov    -0xc(%ebp),%eax
402185:	89 1e                	mov    %ebx,(%esi)
402187:	89 46 04             	mov    %eax,0x4(%esi)
40218a:	eb 02                	jmp    0x40218e
40218c:	8b 1e                	mov    (%esi),%ebx
40218e:	8d 45 08             	lea    0x8(%ebp),%eax
402191:	50                   	push   %eax
402192:	8b 46 08             	mov    0x8(%esi),%eax
402195:	8d 0c 83             	lea    (%ebx,%eax,4),%ecx
402198:	e8 c7 10 00 00       	call   0x403264
40219d:	8b 4d 08             	mov    0x8(%ebp),%ecx
4021a0:	ff 46 08             	incl   0x8(%esi)
4021a3:	e8 85 38 00 00       	call   0x405a2d
4021a8:	5f                   	pop    %edi
4021a9:	5e                   	pop    %esi
4021aa:	5b                   	pop    %ebx
4021ab:	c9                   	leave
4021ac:	c2 04 00             	ret    $0x4
4021af:	c7 01 b4 3b 41 00    	movl   $0x413bb4,(%ecx)
4021b5:	8b c1                	mov    %ecx,%eax
4021b7:	c2 04 00             	ret    $0x4
4021ba:	55                   	push   %ebp
4021bb:	8b ec                	mov    %esp,%ebp
4021bd:	83 ec 14             	sub    $0x14,%esp
4021c0:	53                   	push   %ebx
4021c1:	8b d9                	mov    %ecx,%ebx
4021c3:	56                   	push   %esi
4021c4:	57                   	push   %edi
4021c5:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4021c8:	8b 73 08             	mov    0x8(%ebx),%esi
4021cb:	3b 73 04             	cmp    0x4(%ebx),%esi
4021ce:	0f 82 be 00 00 00    	jb     0x402292
4021d4:	46                   	inc    %esi
4021d5:	0f af 73 0c          	imul   0xc(%ebx),%esi
4021d9:	33 db                	xor    %ebx,%ebx
4021db:	6a 30                	push   $0x30
4021dd:	59                   	pop    %ecx
4021de:	8b c6                	mov    %esi,%eax
4021e0:	89 75 ec             	mov    %esi,-0x14(%ebp)
4021e3:	f7 e1                	mul    %ecx
4021e5:	0f 90 c3             	seto   %bl
4021e8:	33 c9                	xor    %ecx,%ecx
4021ea:	f7 db                	neg    %ebx
4021ec:	0b d8                	or     %eax,%ebx
4021ee:	83 c3 04             	add    $0x4,%ebx
4021f1:	0f 92 c1             	setb   %cl
4021f4:	f7 d9                	neg    %ecx
4021f6:	0b cb                	or     %ebx,%ecx
4021f8:	e8 de 38 00 00       	call   0x405adb
4021fd:	85 c0                	test   %eax,%eax
4021ff:	74 25                	je     0x402226
402201:	8d 48 04             	lea    0x4(%eax),%ecx
402204:	89 30                	mov    %esi,(%eax)
402206:	33 c0                	xor    %eax,%eax
402208:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40220b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40220e:	8b fe                	mov    %esi,%edi
402210:	85 f6                	test   %esi,%esi
402212:	74 1c                	je     0x402230
402214:	8d 51 28             	lea    0x28(%ecx),%edx
402217:	89 02                	mov    %eax,(%edx)
402219:	8d 52 30             	lea    0x30(%edx),%edx
40221c:	89 42 d4             	mov    %eax,-0x2c(%edx)
40221f:	83 ef 01             	sub    $0x1,%edi
402222:	75 f3                	jne    0x402217
402224:	eb 0a                	jmp    0x402230
402226:	33 c0                	xor    %eax,%eax
402228:	89 45 fc             	mov    %eax,-0x4(%ebp)
40222b:	8b c8                	mov    %eax,%ecx
40222d:	89 45 f0             	mov    %eax,-0x10(%ebp)
402230:	8b 5d f4             	mov    -0xc(%ebp),%ebx
402233:	39 43 08             	cmp    %eax,0x8(%ebx)
402236:	76 44                	jbe    0x40227c
402238:	8b f0                	mov    %eax,%esi
40223a:	89 45 f8             	mov    %eax,-0x8(%ebp)
40223d:	8b d1                	mov    %ecx,%edx
40223f:	89 4d f4             	mov    %ecx,-0xc(%ebp)
402242:	8b 03                	mov    (%ebx),%eax
402244:	8b fa                	mov    %edx,%edi
402246:	03 c6                	add    %esi,%eax
402248:	6a 0a                	push   $0xa
40224a:	59                   	pop    %ecx
40224b:	8b f0                	mov    %eax,%esi
40224d:	83 c0 28             	add    $0x28,%eax
402250:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
402252:	50                   	push   %eax
402253:	8d 4a 28             	lea    0x28(%edx),%ecx
402256:	e8 71 0a 00 00       	call   0x402ccc
40225b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40225e:	8b 75 f8             	mov    -0x8(%ebp),%esi
402261:	40                   	inc    %eax
402262:	8b 55 f4             	mov    -0xc(%ebp),%edx
402265:	83 c6 30             	add    $0x30,%esi
402268:	83 c2 30             	add    $0x30,%edx