43806b:	5f                   	pop    %edi
43806c:	5e                   	pop    %esi
43806d:	5b                   	pop    %ebx
43806e:	8b e5                	mov    %ebp,%esp
438070:	5d                   	pop    %ebp
438071:	c2 0c 00             	ret    $0xc
438074:	cc                   	int3
438075:	cc                   	int3
438076:	cc                   	int3
438077:	cc                   	int3
438078:	cc                   	int3
438079:	cc                   	int3
43807a:	cc                   	int3
43807b:	cc                   	int3
43807c:	cc                   	int3
43807d:	cc                   	int3
43807e:	cc                   	int3
43807f:	cc                   	int3
438080:	8b ff                	mov    %edi,%edi
438082:	55                   	push   %ebp
438083:	8b ec                	mov    %esp,%ebp
438085:	56                   	push   %esi
438086:	8b 75 08             	mov    0x8(%ebp),%esi
438089:	57                   	push   %edi
43808a:	8b f9                	mov    %ecx,%edi
43808c:	85 f6                	test   %esi,%esi
43808e:	74 12                	je     0x4380a2
438090:	ff 76 14             	push   0x14(%esi)
438093:	e8 e8 ff ff ff       	call   0x438080
438098:	ff 76 18             	push   0x18(%esi)
43809b:	8b cf                	mov    %edi,%ecx
43809d:	e8 de ff ff ff       	call   0x438080
4380a2:	5f                   	pop    %edi
4380a3:	5e                   	pop    %esi
4380a4:	5d                   	pop    %ebp
4380a5:	c2 04 00             	ret    $0x4
4380a8:	cc                   	int3
4380a9:	cc                   	int3
4380aa:	cc                   	int3
4380ab:	cc                   	int3
4380ac:	cc                   	int3
4380ad:	cc                   	int3
4380ae:	cc                   	int3
4380af:	cc                   	int3
4380b0:	8b ff                	mov    %edi,%edi
4380b2:	55                   	push   %ebp
4380b3:	8b ec                	mov    %esp,%ebp
4380b5:	56                   	push   %esi
4380b6:	8b 75 08             	mov    0x8(%ebp),%esi
4380b9:	57                   	push   %edi
4380ba:	8b f9                	mov    %ecx,%edi
4380bc:	8b 46 14             	mov    0x14(%esi),%eax
4380bf:	85 c0                	test   %eax,%eax
4380c1:	75 06                	jne    0x4380c9
4380c3:	5f                   	pop    %edi
4380c4:	5e                   	pop    %esi
4380c5:	5d                   	pop    %ebp
4380c6:	c2 04 00             	ret    $0x4
4380c9:	83 78 10 00          	cmpl   $0x0,0x10(%eax)
4380cd:	74 15                	je     0x4380e4
4380cf:	8b 40 14             	mov    0x14(%eax),%eax
4380d2:	85 c0                	test   %eax,%eax
4380d4:	74 06                	je     0x4380dc
4380d6:	83 78 10 00          	cmpl   $0x0,0x10(%eax)
4380da:	74 08                	je     0x4380e4
4380dc:	56                   	push   %esi
4380dd:	e8 ce 00 00 00       	call   0x4381b0
4380e2:	8b f0                	mov    %eax,%esi
4380e4:	ff 76 14             	push   0x14(%esi)
4380e7:	8b cf                	mov    %edi,%ecx
4380e9:	e8 c2 ff ff ff       	call   0x4380b0
4380ee:	56                   	push   %esi
4380ef:	89 46 14             	mov    %eax,0x14(%esi)
4380f2:	e8 09 00 00 00       	call   0x438100
4380f7:	5f                   	pop    %edi
4380f8:	5e                   	pop    %esi
4380f9:	5d                   	pop    %ebp
4380fa:	c2 04 00             	ret    $0x4
4380fd:	cc                   	int3
4380fe:	cc                   	int3
4380ff:	cc                   	int3
438100:	8b ff                	mov    %edi,%edi
438102:	55                   	push   %ebp
438103:	8b ec                	mov    %esp,%ebp
438105:	8b 55 08             	mov    0x8(%ebp),%edx
438108:	8b 4a 18             	mov    0x18(%edx),%ecx
43810b:	85 c9                	test   %ecx,%ecx
43810d:	74 1e                	je     0x43812d
43810f:	83 79 10 00          	cmpl   $0x0,0x10(%ecx)
438113:	75 18                	jne    0x43812d
438115:	8b 41 14             	mov    0x14(%ecx),%eax
438118:	89 42 18             	mov    %eax,0x18(%edx)
43811b:	89 51 14             	mov    %edx,0x14(%ecx)
43811e:	8b 42 10             	mov    0x10(%edx),%eax
438121:	89 41 10             	mov    %eax,0x10(%ecx)
438124:	c7 42 10 00 00 00 00 	movl   $0x0,0x10(%edx)
43812b:	8b d1                	mov    %ecx,%edx
43812d:	8b 4a 14             	mov    0x14(%edx),%ecx
438130:	85 c9                	test   %ecx,%ecx
438132:	74 2b                	je     0x43815f
438134:	83 79 10 00          	cmpl   $0x0,0x10(%ecx)
438138:	75 25                	jne    0x43815f
43813a:	8b 41 14             	mov    0x14(%ecx),%eax
43813d:	85 c0                	test   %eax,%eax
43813f:	74 1e                	je     0x43815f
438141:	83 78 10 00          	cmpl   $0x0,0x10(%eax)
438145:	75 18                	jne    0x43815f
438147:	8b 41 18             	mov    0x18(%ecx),%eax
43814a:	89 42 14             	mov    %eax,0x14(%edx)
43814d:	89 51 18             	mov    %edx,0x18(%ecx)
438150:	8b 42 10             	mov    0x10(%edx),%eax
438153:	89 41 10             	mov    %eax,0x10(%ecx)
438156:	c7 42 10 00 00 00 00 	movl   $0x0,0x10(%edx)
43815d:	8b d1                	mov    %ecx,%edx
43815f:	8b 4a 14             	mov    0x14(%edx),%ecx
438162:	85 c9                	test   %ecx,%ecx
438164:	74 3b                	je     0x4381a1
438166:	83 79 10 00          	cmpl   $0x0,0x10(%ecx)
43816a:	75 35                	jne    0x4381a1
43816c:	8b 42 18             	mov    0x18(%edx),%eax
43816f:	85 c0                	test   %eax,%eax
438171:	74 2e                	je     0x4381a1
438173:	83 78 10 00          	cmpl   $0x0,0x10(%eax)
438177:	75 28                	jne    0x4381a1
438179:	33 c0                	xor    %eax,%eax
43817b:	39 42 10             	cmp    %eax,0x10(%edx)
43817e:	0f 94 c0             	sete   %al
438181:	89 42 10             	mov    %eax,0x10(%edx)
438184:	33 c0                	xor    %eax,%eax
438186:	39 41 10             	cmp    %eax,0x10(%ecx)
438189:	0f 94 c0             	sete   %al
43818c:	89 41 10             	mov    %eax,0x10(%ecx)
43818f:	8b 42 18             	mov    0x18(%edx),%eax
438192:	85 c0                	test   %eax,%eax
438194:	74 0b                	je     0x4381a1
438196:	33 c9                	xor    %ecx,%ecx
438198:	39 48 10             	cmp    %ecx,0x10(%eax)
43819b:	0f 94 c1             	sete   %cl
43819e:	89 48 10             	mov    %ecx,0x10(%eax)
4381a1:	8b c2                	mov    %edx,%eax
4381a3:	5d                   	pop    %ebp
4381a4:	c2 04 00             	ret    $0x4
4381a7:	cc                   	int3
4381a8:	cc                   	int3
4381a9:	cc                   	int3
4381aa:	cc                   	int3
4381ab:	cc                   	int3
4381ac:	cc                   	int3
4381ad:	cc                   	int3
4381ae:	cc                   	int3
4381af:	cc                   	int3
4381b0:	8b ff                	mov    %edi,%edi
4381b2:	55                   	push   %ebp
4381b3:	8b ec                	mov    %esp,%ebp
4381b5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4381b8:	33 c0                	xor    %eax,%eax
4381ba:	39 41 10             	cmp    %eax,0x10(%ecx)
4381bd:	8b 51 14             	mov    0x14(%ecx),%edx
4381c0:	0f 94 c0             	sete   %al
4381c3:	89 41 10             	mov    %eax,0x10(%ecx)
4381c6:	85 d2                	test   %edx,%edx
4381c8:	74 0b                	je     0x4381d5
4381ca:	33 c0                	xor    %eax,%eax
4381cc:	39 42 10             	cmp    %eax,0x10(%edx)
4381cf:	0f 94 c0             	sete   %al
4381d2:	89 42 10             	mov    %eax,0x10(%edx)
4381d5:	56                   	push   %esi
4381d6:	8b 71 18             	mov    0x18(%ecx),%esi
4381d9:	85 f6                	test   %esi,%esi
4381db:	74 0e                	je     0x4381eb
4381dd:	33 c0                	xor    %eax,%eax
4381df:	39 46 10             	cmp    %eax,0x10(%esi)
4381e2:	0f 94 c0             	sete   %al
4381e5:	89 46 10             	mov    %eax,0x10(%esi)
4381e8:	8b 71 18             	mov    0x18(%ecx),%esi
4381eb:	8b 56 14             	mov    0x14(%esi),%edx
4381ee:	85 d2                	test   %edx,%edx
4381f0:	74 6b                	je     0x43825d
4381f2:	83 7a 10 00          	cmpl   $0x0,0x10(%edx)
4381f6:	75 65                	jne    0x43825d
4381f8:	8b 42 18             	mov    0x18(%edx),%eax
4381fb:	89 46 14             	mov    %eax,0x14(%esi)
4381fe:	89 72 18             	mov    %esi,0x18(%edx)
438201:	8b 46 10             	mov    0x10(%esi),%eax
438204:	89 42 10             	mov    %eax,0x10(%edx)
438207:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
43820e:	89 51 18             	mov    %edx,0x18(%ecx)
438211:	8b 42 14             	mov    0x14(%edx),%eax
438214:	89 41 18             	mov    %eax,0x18(%ecx)
438217:	89 4a 14             	mov    %ecx,0x14(%edx)
43821a:	8b 41 10             	mov    0x10(%ecx),%eax
43821d:	89 42 10             	mov    %eax,0x10(%edx)
438220:	33 c0                	xor    %eax,%eax
438222:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
438229:	39 42 10             	cmp    %eax,0x10(%edx)
43822c:	8b 4a 14             	mov    0x14(%edx),%ecx
43822f:	0f 94 c0             	sete   %al
438232:	89 42 10             	mov    %eax,0x10(%edx)
438235:	85 c9                	test   %ecx,%ecx
438237:	74 0b                	je     0x438244
438239:	33 c0                	xor    %eax,%eax
43823b:	39 41 10             	cmp    %eax,0x10(%ecx)
43823e:	0f 94 c0             	sete   %al
438241:	89 41 10             	mov    %eax,0x10(%ecx)
438244:	8b 4a 18             	mov    0x18(%edx),%ecx
438247:	85 c9                	test   %ecx,%ecx
438249:	74 0b                	je     0x438256
43824b:	33 c0                	xor    %eax,%eax
43824d:	39 41 10             	cmp    %eax,0x10(%ecx)
438250:	0f 94 c0             	sete   %al
438253:	89 41 10             	mov    %eax,0x10(%ecx)
438256:	8b c2                	mov    %edx,%eax
438258:	5e                   	pop    %esi
438259:	5d                   	pop    %ebp
43825a:	c2 04 00             	ret    $0x4
43825d:	8b c1                	mov    %ecx,%eax
43825f:	5e                   	pop    %esi
438260:	5d                   	pop    %ebp
438261:	c2 04 00             	ret    $0x4
438264:	cc                   	int3
438265:	cc                   	int3
438266:	cc                   	int3
438267:	cc                   	int3
438268:	cc                   	int3
438269:	cc                   	int3
43826a:	cc                   	int3
43826b:	cc                   	int3
43826c:	cc                   	int3
43826d:	cc                   	int3
43826e:	cc                   	int3
43826f:	cc                   	int3
438270:	8b ff                	mov    %edi,%edi
438272:	55                   	push   %ebp
438273:	8b ec                	mov    %esp,%ebp
438275:	83 ec 08             	sub    $0x8,%esp
438278:	53                   	push   %ebx
438279:	56                   	push   %esi
43827a:	57                   	push   %edi
43827b:	33 c0                	xor    %eax,%eax
43827d:	c7 45 f8 ff ff ff 7f 	movl   $0x7fffffff,-0x8(%ebp)
438284:	83 cf ff             	or     $0xffffffff,%edi
438287:	89 45 fc             	mov    %eax,-0x4(%ebp)
43828a:	33 f6                	xor    %esi,%esi
43828c:	33 db                	xor    %ebx,%ebx
43828e:	85 c9                	test   %ecx,%ecx
438290:	74 36                	je     0x4382c8
438292:	8b 51 74             	mov    0x74(%ecx),%edx
438295:	8b 41 70             	mov    0x70(%ecx),%eax
438298:	39 55 f8             	cmp    %edx,-0x8(%ebp)
43829b:	72 0b                	jb     0x4382a8
43829d:	77 04                	ja     0x4382a3
43829f:	3b f8                	cmp    %eax,%edi
4382a1:	76 05                	jbe    0x4382a8
4382a3:	8b f8                	mov    %eax,%edi
4382a5:	89 55 f8             	mov    %edx,-0x8(%ebp)
4382a8:	3b da                	cmp    %edx,%ebx
4382aa:	77 12                	ja     0x4382be
4382ac:	72 04                	jb     0x4382b2
4382ae:	3b f0                	cmp    %eax,%esi
4382b0:	77 0c                	ja     0x4382be
4382b2:	8b f0                	mov    %eax,%esi
4382b4:	8b da                	mov    %edx,%ebx
4382b6:	8b 41 7c             	mov    0x7c(%ecx),%eax
4382b9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4382bc:	eb 03                	jmp    0x4382c1
4382be:	8b 45 fc             	mov    -0x4(%ebp),%eax
4382c1:	8b 49 1c             	mov    0x1c(%ecx),%ecx
4382c4:	85 c9                	test   %ecx,%ecx
4382c6:	75 ca                	jne    0x438292
4382c8:	2b f7                	sub    %edi,%esi
4382ca:	5f                   	pop    %edi
4382cb:	03 c6                	add    %esi,%eax
4382cd:	5e                   	pop    %esi
4382ce:	5b                   	pop    %ebx
4382cf:	8b e5                	mov    %ebp,%esp
4382d1:	5d                   	pop    %ebp
4382d2:	c3                   	ret
4382d3:	cc                   	int3
4382d4:	cc                   	int3
4382d5:	cc                   	int3
4382d6:	cc                   	int3
4382d7:	cc                   	int3
4382d8:	cc                   	int3
4382d9:	cc                   	int3
4382da:	cc                   	int3
4382db:	cc                   	int3
4382dc:	cc                   	int3
4382dd:	cc                   	int3
4382de:	cc                   	int3
4382df:	cc                   	int3
4382e0:	8b ff                	mov    %edi,%edi
4382e2:	55                   	push   %ebp
4382e3:	8b ec                	mov    %esp,%ebp
4382e5:	8b 55 08             	mov    0x8(%ebp),%edx
4382e8:	57                   	push   %edi
4382e9:	8b 3a                	mov    (%edx),%edi
4382eb:	8b 42 04             	mov    0x4(%edx),%eax
4382ee:	39 39                	cmp    %edi,(%ecx)
4382f0:	75 17                	jne    0x438309
4382f2:	39 41 04             	cmp    %eax,0x4(%ecx)
4382f5:	75 15                	jne    0x43830c
4382f7:	8b 41 0c             	mov    0xc(%ecx),%eax
4382fa:	3b 42 0c             	cmp    0xc(%edx),%eax
4382fd:	77 1c                	ja     0x43831b
4382ff:	72 13                	jb     0x438314
438301:	8b 41 08             	mov    0x8(%ecx),%eax
438304:	3b 42 08             	cmp    0x8(%edx),%eax
438307:	eb 09                	jmp    0x438312
438309:	39 41 04             	cmp    %eax,0x4(%ecx)
43830c:	77 0d                	ja     0x43831b
43830e:	72 04                	jb     0x438314
438310:	39 39                	cmp    %edi,(%ecx)
438312:	73 07                	jae    0x43831b
438314:	b0 01                	mov    $0x1,%al
438316:	5f                   	pop    %edi
438317:	5d                   	pop    %ebp
438318:	c2 04 00             	ret    $0x4
43831b:	32 c0                	xor    %al,%al
43831d:	5f                   	pop    %edi
43831e:	5d                   	pop    %ebp
43831f:	c2 04 00             	ret    $0x4
438322:	cc                   	int3
438323:	cc                   	int3
438324:	cc                   	int3
438325:	cc                   	int3
438326:	cc                   	int3
438327:	cc                   	int3
438328:	cc                   	int3
438329:	cc                   	int3
43832a:	cc                   	int3
43832b:	cc                   	int3
43832c:	cc                   	int3
43832d:	cc                   	int3
43832e:	cc                   	int3
43832f:	cc                   	int3
438330:	8b 41 04             	mov    0x4(%ecx),%eax
438333:	85 c0                	test   %eax,%eax
438335:	75 08                	jne    0x43833f
438337:	39 41 10             	cmp    %eax,0x10(%ecx)
43833a:	74 10                	je     0x43834c
43833c:	8b 41 08             	mov    0x8(%ecx),%eax
43833f:	8b 40 68             	mov    0x68(%eax),%eax
438342:	25 40 00 04 00       	and    $0x40040,%eax
438347:	83 c8 00             	or     $0x0,%eax
43834a:	75 03                	jne    0x43834f
43834c:	33 c0                	xor    %eax,%eax
43834e:	c3                   	ret
43834f:	b8 01 00 00 00       	mov    $0x1,%eax
438354:	c3                   	ret
438355:	cc                   	int3