404f60:	8b ff                	mov    %edi,%edi
404f62:	55                   	push   %ebp
404f63:	8b ec                	mov    %esp,%ebp
404f65:	56                   	push   %esi
404f66:	ff 75 08             	push   0x8(%ebp)
404f69:	8b f1                	mov    %ecx,%esi
404f6b:	83 66 10 00          	andl   $0x0,0x10(%esi)
404f6f:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
404f76:	c6 06 00             	movb   $0x0,(%esi)
404f79:	e8 02 fe ff ff       	call   0x404d80
404f7e:	59                   	pop    %ecx
404f7f:	50                   	push   %eax
404f80:	ff 75 08             	push   0x8(%ebp)
404f83:	8b ce                	mov    %esi,%ecx
404f85:	e8 59 00 00 00       	call   0x404fe3
404f8a:	8b c6                	mov    %esi,%eax
404f8c:	5e                   	pop    %esi
404f8d:	5d                   	pop    %ebp
404f8e:	c2 04 00             	ret    $0x4
404f91:	8b ff                	mov    %edi,%edi
404f93:	55                   	push   %ebp
404f94:	8b ec                	mov    %esp,%ebp
404f96:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
404f9a:	56                   	push   %esi
404f9b:	57                   	push   %edi
404f9c:	8b 7d 0c             	mov    0xc(%ebp),%edi
404f9f:	8b f1                	mov    %ecx,%esi
404fa1:	74 21                	je     0x404fc4
404fa3:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
404fa7:	72 1b                	jb     0x404fc4
404fa9:	53                   	push   %ebx
404faa:	8b 1e                	mov    (%esi),%ebx
404fac:	85 ff                	test   %edi,%edi
404fae:	74 0b                	je     0x404fbb
404fb0:	57                   	push   %edi
404fb1:	53                   	push   %ebx
404fb2:	56                   	push   %esi
404fb3:	e8 6e 97 00 00       	call   0x40e726
404fb8:	83 c4 0c             	add    $0xc,%esp
404fbb:	53                   	push   %ebx
404fbc:	ff 15 e4 21 41 00    	call   *0x4121e4
404fc2:	59                   	pop    %ecx
404fc3:	5b                   	pop    %ebx
404fc4:	89 7e 10             	mov    %edi,0x10(%esi)
404fc7:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
404fce:	c6 04 37 00          	movb   $0x0,(%edi,%esi,1)
404fd2:	5f                   	pop    %edi
404fd3:	5e                   	pop    %esi
404fd4:	5d                   	pop    %ebp
404fd5:	c2 08 00             	ret    $0x8
404fd8:	68 70 21 40 00       	push   $0x402170
404fdd:	e8 70 90 00 00       	call   0x40e052
404fe2:	cc                   	int3
404fe3:	8b ff                	mov    %edi,%edi
404fe5:	55                   	push   %ebp
404fe6:	8b ec                	mov    %esp,%ebp
404fe8:	53                   	push   %ebx
404fe9:	8b 5d 08             	mov    0x8(%ebp),%ebx
404fec:	56                   	push   %esi
404fed:	53                   	push   %ebx
404fee:	8b f1                	mov    %ecx,%esi
404ff0:	e8 78 00 00 00       	call   0x40506d
404ff5:	84 c0                	test   %al,%al
404ff7:	74 1c                	je     0x405015
404ff9:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
404ffd:	72 04                	jb     0x405003
404fff:	8b 06                	mov    (%esi),%eax
405001:	eb 02                	jmp    0x405005
405003:	8b c6                	mov    %esi,%eax
405005:	ff 75 0c             	push   0xc(%ebp)
405008:	2b d8                	sub    %eax,%ebx
40500a:	8b ce                	mov    %esi,%ecx
40500c:	53                   	push   %ebx
40500d:	56                   	push   %esi
40500e:	e8 f5 00 00 00       	call   0x405108
405013:	eb 47                	jmp    0x40505c
405015:	57                   	push   %edi
405016:	8b 7d 0c             	mov    0xc(%ebp),%edi
405019:	8b ce                	mov    %esi,%ecx
40501b:	6a 00                	push   $0x0
40501d:	57                   	push   %edi
40501e:	e8 87 00 00 00       	call   0x4050aa
405023:	84 c0                	test   %al,%al
405025:	74 32                	je     0x405059
405027:	8b 46 14             	mov    0x14(%esi),%eax
40502a:	83 f8 10             	cmp    $0x10,%eax
40502d:	72 04                	jb     0x405033
40502f:	8b 0e                	mov    (%esi),%ecx
405031:	eb 02                	jmp    0x405035
405033:	8b ce                	mov    %esi,%ecx
405035:	85 ff                	test   %edi,%edi
405037:	74 0e                	je     0x405047
405039:	57                   	push   %edi
40503a:	53                   	push   %ebx
40503b:	51                   	push   %ecx
40503c:	e8 e5 96 00 00       	call   0x40e726
405041:	8b 46 14             	mov    0x14(%esi),%eax
405044:	83 c4 0c             	add    $0xc,%esp
405047:	89 7e 10             	mov    %edi,0x10(%esi)
40504a:	83 f8 10             	cmp    $0x10,%eax
40504d:	72 04                	jb     0x405053
40504f:	8b 06                	mov    (%esi),%eax
405051:	eb 02                	jmp    0x405055
405053:	8b c6                	mov    %esi,%eax
405055:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
405059:	8b c6                	mov    %esi,%eax
40505b:	5f                   	pop    %edi
40505c:	5e                   	pop    %esi
40505d:	5b                   	pop    %ebx
40505e:	5d                   	pop    %ebp
40505f:	c2 08 00             	ret    $0x8
405062:	68 88 21 40 00       	push   $0x402188
405067:	e8 c4 8f 00 00       	call   0x40e030
40506c:	cc                   	int3
40506d:	8b ff                	mov    %edi,%edi
40506f:	55                   	push   %ebp
405070:	8b ec                	mov    %esp,%ebp
405072:	8b 55 08             	mov    0x8(%ebp),%edx
405075:	85 d2                	test   %edx,%edx
405077:	74 2b                	je     0x4050a4
405079:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
40507d:	72 04                	jb     0x405083
40507f:	8b 01                	mov    (%ecx),%eax
405081:	eb 02                	jmp    0x405085
405083:	8b c1                	mov    %ecx,%eax
405085:	3b d0                	cmp    %eax,%edx
405087:	72 1b                	jb     0x4050a4
405089:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
40508d:	56                   	push   %esi
40508e:	72 04                	jb     0x405094
405090:	8b 31                	mov    (%ecx),%esi
405092:	eb 02                	jmp    0x405096
405094:	8b f1                	mov    %ecx,%esi
405096:	8b 41 10             	mov    0x10(%ecx),%eax
405099:	03 c6                	add    %esi,%eax
40509b:	5e                   	pop    %esi
40509c:	3b c2                	cmp    %edx,%eax
40509e:	76 04                	jbe    0x4050a4
4050a0:	b0 01                	mov    $0x1,%al
4050a2:	eb 02                	jmp    0x4050a6
4050a4:	32 c0                	xor    %al,%al
4050a6:	5d                   	pop    %ebp
4050a7:	c2 04 00             	ret    $0x4
4050aa:	8b ff                	mov    %edi,%edi
4050ac:	55                   	push   %ebp
4050ad:	8b ec                	mov    %esp,%ebp
4050af:	56                   	push   %esi
4050b0:	8b 75 08             	mov    0x8(%ebp),%esi
4050b3:	83 fe fe             	cmp    $0xfffffffe,%esi
4050b6:	77 4a                	ja     0x405102
4050b8:	39 71 14             	cmp    %esi,0x14(%ecx)
4050bb:	73 0b                	jae    0x4050c8
4050bd:	ff 71 10             	push   0x10(%ecx)
4050c0:	56                   	push   %esi
4050c1:	e8 d8 00 00 00       	call   0x40519e
4050c6:	eb 30                	jmp    0x4050f8
4050c8:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
4050cc:	74 18                	je     0x4050e6
4050ce:	83 fe 10             	cmp    $0x10,%esi
4050d1:	73 13                	jae    0x4050e6
4050d3:	8b 41 10             	mov    0x10(%ecx),%eax
4050d6:	3b f0                	cmp    %eax,%esi
4050d8:	73 02                	jae    0x4050dc
4050da:	8b c6                	mov    %esi,%eax
4050dc:	50                   	push   %eax
4050dd:	6a 01                	push   $0x1
4050df:	e8 ad fe ff ff       	call   0x404f91
4050e4:	eb 12                	jmp    0x4050f8
4050e6:	85 f6                	test   %esi,%esi
4050e8:	75 10                	jne    0x4050fa
4050ea:	21 71 10             	and    %esi,0x10(%ecx)
4050ed:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
4050f1:	72 02                	jb     0x4050f5
4050f3:	8b 09                	mov    (%ecx),%ecx
4050f5:	c6 01 00             	movb   $0x0,(%ecx)
4050f8:	85 f6                	test   %esi,%esi
4050fa:	0f 95 c0             	setne  %al
4050fd:	5e                   	pop    %esi
4050fe:	5d                   	pop    %ebp
4050ff:	c2 08 00             	ret    $0x8
405102:	e8 5b ff ff ff       	call   0x405062
405107:	cc                   	int3
405108:	8b ff                	mov    %edi,%edi
40510a:	55                   	push   %ebp
40510b:	8b ec                	mov    %esp,%ebp
40510d:	8b 45 0c             	mov    0xc(%ebp),%eax
405110:	53                   	push   %ebx
405111:	8b 5d 08             	mov    0x8(%ebp),%ebx
405114:	56                   	push   %esi
405115:	57                   	push   %edi
405116:	8b f1                	mov    %ecx,%esi
405118:	8b 7b 10             	mov    0x10(%ebx),%edi
40511b:	3b f8                	cmp    %eax,%edi
40511d:	72 79                	jb     0x405198
40511f:	2b f8                	sub    %eax,%edi
405121:	39 7d 10             	cmp    %edi,0x10(%ebp)
405124:	73 03                	jae    0x405129
405126:	8b 7d 10             	mov    0x10(%ebp),%edi
405129:	3b f3                	cmp    %ebx,%esi
40512b:	75 17                	jne    0x405144
40512d:	03 c7                	add    %edi,%eax
40512f:	50                   	push   %eax
405130:	e8 d7 01 00 00       	call   0x40530c
405135:	8b 45 0c             	mov    0xc(%ebp),%eax
405138:	8b ce                	mov    %esi,%ecx
40513a:	50                   	push   %eax
40513b:	6a 00                	push   $0x0
40513d:	e8 41 01 00 00       	call   0x405283
405142:	eb 4b                	jmp    0x40518f
405144:	6a 00                	push   $0x0
405146:	57                   	push   %edi
405147:	e8 5e ff ff ff       	call   0x4050aa
40514c:	84 c0                	test   %al,%al
40514e:	74 3f                	je     0x40518f
405150:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
405154:	72 02                	jb     0x405158
405156:	8b 1b                	mov    (%ebx),%ebx
405158:	8b 46 14             	mov    0x14(%esi),%eax
40515b:	83 f8 10             	cmp    $0x10,%eax
40515e:	72 04                	jb     0x405164
405160:	8b 0e                	mov    (%esi),%ecx
405162:	eb 02                	jmp    0x405166
405164:	8b ce                	mov    %esi,%ecx
405166:	85 ff                	test   %edi,%edi
405168:	74 13                	je     0x40517d
40516a:	8b 45 0c             	mov    0xc(%ebp),%eax
40516d:	57                   	push   %edi
40516e:	03 c3                	add    %ebx,%eax
405170:	50                   	push   %eax
405171:	51                   	push   %ecx
405172:	e8 af 95 00 00       	call   0x40e726
405177:	8b 46 14             	mov    0x14(%esi),%eax
40517a:	83 c4 0c             	add    $0xc,%esp
40517d:	89 7e 10             	mov    %edi,0x10(%esi)
405180:	83 f8 10             	cmp    $0x10,%eax
405183:	72 04                	jb     0x405189
405185:	8b 06                	mov    (%esi),%eax
405187:	eb 02                	jmp    0x40518b
405189:	8b c6                	mov    %esi,%eax
40518b:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
40518f:	5f                   	pop    %edi
405190:	8b c6                	mov    %esi,%eax
405192:	5e                   	pop    %esi
405193:	5b                   	pop    %ebx
405194:	5d                   	pop    %ebp
405195:	c2 0c 00             	ret    $0xc
405198:	e8 3b fe ff ff       	call   0x404fd8
40519d:	cc                   	int3
40519e:	6a 14                	push   $0x14
4051a0:	b8 55 ec 40 00       	mov    $0x40ec55,%eax
4051a5:	e8 0d 95 00 00       	call   0x40e6b7
4051aa:	8b f9                	mov    %ecx,%edi
4051ac:	89 7d e8             	mov    %edi,-0x18(%ebp)
4051af:	8b 75 08             	mov    0x8(%ebp),%esi
4051b2:	83 ce 0f             	or     $0xf,%esi
4051b5:	83 fe fe             	cmp    $0xfffffffe,%esi
4051b8:	76 05                	jbe    0x4051bf
4051ba:	8b 75 08             	mov    0x8(%ebp),%esi
4051bd:	eb 2a                	jmp    0x4051e9
4051bf:	33 d2                	xor    %edx,%edx
4051c1:	c7 45 e4 03 00 00 00 	movl   $0x3,-0x1c(%ebp)
4051c8:	8b c6                	mov    %esi,%eax
4051ca:	8b 5f 14             	mov    0x14(%edi),%ebx
4051cd:	f7 75 e4             	divl   -0x1c(%ebp)
4051d0:	8b cb                	mov    %ebx,%ecx
4051d2:	d1 e9                	shr    $1,%ecx
4051d4:	3b c8                	cmp    %eax,%ecx
4051d6:	76 11                	jbe    0x4051e9
4051d8:	6a fe                	push   $0xfffffffe
4051da:	58                   	pop    %eax
4051db:	2b c1                	sub    %ecx,%eax
4051dd:	3b d8                	cmp    %eax,%ebx
4051df:	77 05                	ja     0x4051e6
4051e1:	8d 34 19             	lea    (%ecx,%ebx,1),%esi
4051e4:	eb 03                	jmp    0x4051e9
4051e6:	6a fe                	push   $0xfffffffe
4051e8:	5e                   	pop    %esi
4051e9:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4051ed:	8d 46 01             	lea    0x1(%esi),%eax
4051f0:	50                   	push   %eax
4051f1:	8d 4d ef             	lea    -0x11(%ebp),%ecx
4051f4:	e8 3f 01 00 00       	call   0x405338
4051f9:	8b d8                	mov    %eax,%ebx
4051fb:	eb 29                	jmp    0x405226
4051fd:	8b 45 08             	mov    0x8(%ebp),%eax
405200:	8d 4d ef             	lea    -0x11(%ebp),%ecx
405203:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405206:	40                   	inc    %eax
405207:	89 65 f0             	mov    %esp,-0x10(%ebp)
40520a:	50                   	push   %eax
40520b:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40520f:	e8 24 01 00 00       	call   0x405338
405214:	89 45 e0             	mov    %eax,-0x20(%ebp)
405217:	b8 1d 52 40 00       	mov    $0x40521d,%eax
40521c:	c3                   	ret
40521d:	8b 7d e8             	mov    -0x18(%ebp),%edi
405220:	8b 75 e4             	mov    -0x1c(%ebp),%esi
405223:	8b 5d e0             	mov    -0x20(%ebp),%ebx
405226:	8b 45 0c             	mov    0xc(%ebp),%eax
405229:	85 c0                	test   %eax,%eax
40522b:	74 17                	je     0x405244
40522d:	83 7f 14 10          	cmpl   $0x10,0x14(%edi)
405231:	72 04                	jb     0x405237
405233:	8b 0f                	mov    (%edi),%ecx
405235:	eb 02                	jmp    0x405239
405237:	8b cf                	mov    %edi,%ecx
405239:	50                   	push   %eax
40523a:	51                   	push   %ecx
40523b:	53                   	push   %ebx
40523c:	e8 e5 94 00 00       	call   0x40e726
405241:	83 c4 0c             	add    $0xc,%esp
405244:	6a 00                	push   $0x0
405246:	6a 01                	push   $0x1
405248:	8b cf                	mov    %edi,%ecx
40524a:	e8 42 fd ff ff       	call   0x404f91
40524f:	8b 45 0c             	mov    0xc(%ebp),%eax
405252:	89 1f                	mov    %ebx,(%edi)
405254:	89 77 14             	mov    %esi,0x14(%edi)
405257:	89 47 10             	mov    %eax,0x10(%edi)
40525a:	83 fe 10             	cmp    $0x10,%esi
40525d:	73 02                	jae    0x405261
40525f:	8b df                	mov    %edi,%ebx
405261:	c6 04 03 00          	movb   $0x0,(%ebx,%eax,1)
405265:	e8 b2 93 00 00       	call   0x40e61c
40526a:	c2 08 00             	ret    $0x8
40526d:	8b 4d e8             	mov    -0x18(%ebp),%ecx
405270:	6a 00                	push   $0x0
405272:	6a 01                	push   $0x1
405274:	e8 18 fd ff ff       	call   0x404f91
405279:	6a 00                	push   $0x0
40527b:	6a 00                	push   $0x0
40527d:	e8 94 93 00 00       	call   0x40e616
405282:	cc                   	int3
405283:	8b ff                	mov    %edi,%edi
405285:	55                   	push   %ebp
405286:	8b ec                	mov    %esp,%ebp
405288:	51                   	push   %ecx
405289:	56                   	push   %esi
40528a:	8b f1                	mov    %ecx,%esi
40528c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40528f:	57                   	push   %edi
405290:	8b 7e 10             	mov    0x10(%esi),%edi
405293:	3b f9                	cmp    %ecx,%edi
405295:	72 6d                	jb     0x405304
405297:	8b 55 0c             	mov    0xc(%ebp),%edx
40529a:	8b c7                	mov    %edi,%eax
40529c:	2b c1                	sub    %ecx,%eax
40529e:	3b c2                	cmp    %edx,%eax
4052a0:	77 15                	ja     0x4052b7
4052a2:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)