40341b:	89 4d b8             	mov    %ecx,-0x48(%ebp)
40341e:	8b 7d 14             	mov    0x14(%ebp),%edi
403421:	8a 45 18             	mov    0x18(%ebp),%al
403424:	8b 5d 08             	mov    0x8(%ebp),%ebx
403427:	89 5d ac             	mov    %ebx,-0x54(%ebp)
40342a:	f7 47 14 00 40 00 00 	testl  $0x4000,0x14(%edi)
403431:	88 45 bc             	mov    %al,-0x44(%ebp)
403434:	75 1c                	jne    0x403452
403436:	0f b6 45 1c          	movzbl 0x1c(%ebp),%eax
40343a:	8b 11                	mov    (%ecx),%edx
40343c:	50                   	push   %eax
40343d:	ff 75 bc             	push   -0x44(%ebp)
403440:	57                   	push   %edi
403441:	ff 75 10             	push   0x10(%ebp)
403444:	ff 75 0c             	push   0xc(%ebp)
403447:	53                   	push   %ebx
403448:	ff 52 24             	call   *0x24(%edx)
40344b:	8b c3                	mov    %ebx,%eax
40344d:	e9 88 01 00 00       	jmp    0x4035da
403452:	8b 47 30             	mov    0x30(%edi),%eax
403455:	8b 48 04             	mov    0x4(%eax),%ecx
403458:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
40345b:	8b 01                	mov    (%ecx),%eax
40345d:	ff 50 04             	call   *0x4(%eax)
403460:	8d 45 b0             	lea    -0x50(%ebp),%eax
403463:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40346a:	50                   	push   %eax
40346b:	e8 40 18 00 00       	call   0x404cb0
403470:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
403473:	83 c4 04             	add    $0x4,%esp
403476:	8b f0                	mov    %eax,%esi
403478:	85 c9                	test   %ecx,%ecx
40347a:	74 11                	je     0x40348d
40347c:	8b 11                	mov    (%ecx),%edx
40347e:	ff 52 08             	call   *0x8(%edx)
403481:	85 c0                	test   %eax,%eax
403483:	74 08                	je     0x40348d
403485:	8b 10                	mov    (%eax),%edx
403487:	8b c8                	mov    %eax,%ecx
403489:	6a 01                	push   $0x1
40348b:	ff 12                	call   *(%edx)
40348d:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
403494:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40349b:	c7 45 ec 0f 00 00 00 	movl   $0xf,-0x14(%ebp)
4034a2:	c6 45 d8 00          	movb   $0x0,-0x28(%ebp)
4034a6:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
4034aa:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4034ad:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4034b4:	8b 06                	mov    (%esi),%eax
4034b6:	51                   	push   %ecx
4034b7:	8b ce                	mov    %esi,%ecx
4034b9:	74 3b                	je     0x4034f6
4034bb:	ff 50 1c             	call   *0x1c(%eax)
4034be:	8d 45 c0             	lea    -0x40(%ebp),%eax
4034c1:	50                   	push   %eax
4034c2:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4034c5:	e8 d6 10 00 00       	call   0x4045a0
4034ca:	8b 55 d4             	mov    -0x2c(%ebp),%edx
4034cd:	83 fa 10             	cmp    $0x10,%edx
4034d0:	72 33                	jb     0x403505
4034d2:	8b 4d c0             	mov    -0x40(%ebp),%ecx
4034d5:	42                   	inc    %edx
4034d6:	8b c1                	mov    %ecx,%eax
4034d8:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
4034de:	72 1b                	jb     0x4034fb
4034e0:	8b 49 fc             	mov    -0x4(%ecx),%ecx
4034e3:	83 c2 23             	add    $0x23,%edx
4034e6:	2b c1                	sub    %ecx,%eax
4034e8:	83 c0 fc             	add    $0xfffffffc,%eax
4034eb:	83 f8 1f             	cmp    $0x1f,%eax
4034ee:	0f 87 04 01 00 00    	ja     0x4035f8
4034f4:	eb 05                	jmp    0x4034fb
4034f6:	ff 50 18             	call   *0x18(%eax)
4034f9:	eb c3                	jmp    0x4034be
4034fb:	52                   	push   %edx
4034fc:	51                   	push   %ecx
4034fd:	e8 4a 41 00 00       	call   0x40764c
403502:	83 c4 08             	add    $0x8,%esp
403505:	83 7f 24 00          	cmpl   $0x0,0x24(%edi)
403509:	8b 77 20             	mov    0x20(%edi),%esi
40350c:	8b 45 e8             	mov    -0x18(%ebp),%eax
40350f:	7c 0e                	jl     0x40351f
403511:	7f 04                	jg     0x403517
403513:	85 f6                	test   %esi,%esi
403515:	74 08                	je     0x40351f
403517:	3b f0                	cmp    %eax,%esi
403519:	76 04                	jbe    0x40351f
40351b:	2b f0                	sub    %eax,%esi
40351d:	eb 02                	jmp    0x403521
40351f:	33 f6                	xor    %esi,%esi
403521:	8b 47 14             	mov    0x14(%edi),%eax
403524:	25 c0 01 00 00       	and    $0x1c0,%eax
403529:	83 f8 40             	cmp    $0x40,%eax
40352c:	74 28                	je     0x403556
40352e:	56                   	push   %esi
40352f:	ff 75 bc             	push   -0x44(%ebp)
403532:	8d 45 b0             	lea    -0x50(%ebp),%eax
403535:	ff 75 10             	push   0x10(%ebp)
403538:	ff 75 0c             	push   0xc(%ebp)
40353b:	50                   	push   %eax
40353c:	ff 75 b8             	push   -0x48(%ebp)
40353f:	e8 ec 04 00 00       	call   0x403a30
403544:	83 c4 18             	add    $0x18,%esp
403547:	33 f6                	xor    %esi,%esi
403549:	8b 08                	mov    (%eax),%ecx
40354b:	8b 50 04             	mov    0x4(%eax),%edx
40354e:	89 4d 0c             	mov    %ecx,0xc(%ebp)
403551:	89 55 10             	mov    %edx,0x10(%ebp)
403554:	eb 06                	jmp    0x40355c
403556:	8b 55 10             	mov    0x10(%ebp),%edx
403559:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40355c:	ff 75 e8             	push   -0x18(%ebp)
40355f:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
403563:	8d 45 d8             	lea    -0x28(%ebp),%eax
403566:	8b 5d d8             	mov    -0x28(%ebp),%ebx
403569:	0f 43 c3             	cmovae %ebx,%eax
40356c:	50                   	push   %eax
40356d:	52                   	push   %edx
40356e:	51                   	push   %ecx
40356f:	8d 45 b0             	lea    -0x50(%ebp),%eax
403572:	50                   	push   %eax
403573:	ff 75 b8             	push   -0x48(%ebp)
403576:	e8 25 05 00 00       	call   0x403aa0
40357b:	56                   	push   %esi
40357c:	ff 75 bc             	push   -0x44(%ebp)
40357f:	8b 75 ac             	mov    -0x54(%ebp),%esi
403582:	8b 08                	mov    (%eax),%ecx
403584:	8b 40 04             	mov    0x4(%eax),%eax
403587:	50                   	push   %eax
403588:	51                   	push   %ecx
403589:	56                   	push   %esi
40358a:	ff 75 b8             	push   -0x48(%ebp)
40358d:	89 4d 0c             	mov    %ecx,0xc(%ebp)
403590:	89 45 10             	mov    %eax,0x10(%ebp)
403593:	c7 47 20 00 00 00 00 	movl   $0x0,0x20(%edi)
40359a:	c7 47 24 00 00 00 00 	movl   $0x0,0x24(%edi)
4035a1:	e8 8a 04 00 00       	call   0x403a30
4035a6:	8b 45 ec             	mov    -0x14(%ebp),%eax
4035a9:	83 c4 30             	add    $0x30,%esp
4035ac:	83 f8 10             	cmp    $0x10,%eax
4035af:	72 27                	jb     0x4035d8
4035b1:	8d 48 01             	lea    0x1(%eax),%ecx
4035b4:	8b c3                	mov    %ebx,%eax
4035b6:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4035bc:	72 10                	jb     0x4035ce
4035be:	8b 5b fc             	mov    -0x4(%ebx),%ebx
4035c1:	83 c1 23             	add    $0x23,%ecx
4035c4:	2b c3                	sub    %ebx,%eax
4035c6:	83 c0 fc             	add    $0xfffffffc,%eax
4035c9:	83 f8 1f             	cmp    $0x1f,%eax
4035cc:	77 2a                	ja     0x4035f8
4035ce:	51                   	push   %ecx
4035cf:	53                   	push   %ebx
4035d0:	e8 77 40 00 00       	call   0x40764c
4035d5:	83 c4 08             	add    $0x8,%esp
4035d8:	8b c6                	mov    %esi,%eax
4035da:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4035dd:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4035e4:	59                   	pop    %ecx
4035e5:	5f                   	pop    %edi
4035e6:	5e                   	pop    %esi
4035e7:	5b                   	pop    %ebx
4035e8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4035eb:	33 cd                	xor    %ebp,%ecx
4035ed:	e8 1a 3e 00 00       	call   0x40740c
4035f2:	8b e5                	mov    %ebp,%esp
4035f4:	5d                   	pop    %ebp
4035f5:	c2 18 00             	ret    $0x18
4035f8:	e8 94 9a 00 00       	call   0x40d091
4035fd:	cc                   	int3
4035fe:	cc                   	int3
4035ff:	cc                   	int3
403600:	55                   	push   %ebp
403601:	8b ec                	mov    %esp,%ebp
403603:	6a ff                	push   $0xffffffff
403605:	68 80 2b 42 00       	push   $0x422b80
40360a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
403610:	50                   	push   %eax
403611:	51                   	push   %ecx
403612:	56                   	push   %esi
403613:	a1 14 30 43 00       	mov    0x433014,%eax
403618:	33 c5                	xor    %ebp,%eax
40361a:	50                   	push   %eax
40361b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40361e:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
403624:	8b f1                	mov    %ecx,%esi
403626:	e8 c4 36 00 00       	call   0x406cef
40362b:	84 c0                	test   %al,%al
40362d:	75 07                	jne    0x403636
40362f:	8b 0e                	mov    (%esi),%ecx
403631:	e8 da 0e 00 00       	call   0x404510
403636:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40363d:	8b 0e                	mov    (%esi),%ecx
40363f:	8b 01                	mov    (%ecx),%eax
403641:	8b 40 04             	mov    0x4(%eax),%eax
403644:	8b 4c 08 38          	mov    0x38(%eax,%ecx,1),%ecx
403648:	85 c9                	test   %ecx,%ecx
40364a:	74 05                	je     0x403651
40364c:	8b 01                	mov    (%ecx),%eax
40364e:	ff 50 08             	call   *0x8(%eax)
403651:	8b 4d f4             	mov    -0xc(%ebp),%ecx
403654:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40365b:	59                   	pop    %ecx
40365c:	5e                   	pop    %esi
40365d:	8b e5                	mov    %ebp,%esp
40365f:	5d                   	pop    %ebp
403660:	c3                   	ret
403661:	cc                   	int3
403662:	cc                   	int3
403663:	cc                   	int3
403664:	cc                   	int3
403665:	cc                   	int3
403666:	cc                   	int3
403667:	cc                   	int3
403668:	cc                   	int3
403669:	cc                   	int3
40366a:	cc                   	int3
40366b:	cc                   	int3
40366c:	cc                   	int3
40366d:	cc                   	int3
40366e:	cc                   	int3
40366f:	cc                   	int3
403670:	55                   	push   %ebp
403671:	8b ec                	mov    %esp,%ebp
403673:	6a ff                	push   $0xffffffff
403675:	68 b5 2b 42 00       	push   $0x422bb5
40367a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
403680:	50                   	push   %eax
403681:	83 ec 0c             	sub    $0xc,%esp
403684:	53                   	push   %ebx
403685:	56                   	push   %esi
403686:	57                   	push   %edi
403687:	a1 14 30 43 00       	mov    0x433014,%eax
40368c:	33 c5                	xor    %ebp,%eax
40368e:	50                   	push   %eax
40368f:	8d 45 f4             	lea    -0xc(%ebp),%eax
403692:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
403698:	8b d9                	mov    %ecx,%ebx
40369a:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40369d:	8b 7d 08             	mov    0x8(%ebp),%edi
4036a0:	89 3b                	mov    %edi,(%ebx)
4036a2:	8b 17                	mov    (%edi),%edx
4036a4:	8b 42 04             	mov    0x4(%edx),%eax
4036a7:	8b 4c 38 38          	mov    0x38(%eax,%edi,1),%ecx
4036ab:	85 c9                	test   %ecx,%ecx
4036ad:	74 07                	je     0x4036b6
4036af:	8b 01                	mov    (%ecx),%eax
4036b1:	ff 50 04             	call   *0x4(%eax)
4036b4:	8b 17                	mov    (%edi),%edx
4036b6:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4036bd:	8b 42 04             	mov    0x4(%edx),%eax
4036c0:	83 7c 38 0c 00       	cmpl   $0x0,0xc(%eax,%edi,1)
4036c5:	8d 34 38             	lea    (%eax,%edi,1),%esi
4036c8:	74 07                	je     0x4036d1
4036ca:	32 c0                	xor    %al,%al
4036cc:	e9 98 00 00 00       	jmp    0x403769
4036d1:	8b 76 3c             	mov    0x3c(%esi),%esi
4036d4:	85 f6                	test   %esi,%esi
4036d6:	0f 84 8b 00 00 00    	je     0x403767
4036dc:	3b f7                	cmp    %edi,%esi
4036de:	0f 84 83 00 00 00    	je     0x403767
4036e4:	8b 06                	mov    (%esi),%eax
4036e6:	8b 40 04             	mov    0x4(%eax),%eax
4036e9:	8b 44 30 38          	mov    0x38(%eax,%esi,1),%eax
4036ed:	89 45 08             	mov    %eax,0x8(%ebp)
4036f0:	85 c0                	test   %eax,%eax
4036f2:	74 66                	je     0x40375a
4036f4:	56                   	push   %esi
4036f5:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4036f8:	e8 73 ff ff ff       	call   0x403670
4036fd:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
403701:	80 7d ec 00          	cmpb   $0x0,-0x14(%ebp)
403705:	74 23                	je     0x40372a
403707:	8b 4d 08             	mov    0x8(%ebp),%ecx
40370a:	8b 01                	mov    (%ecx),%eax
40370c:	ff 50 34             	call   *0x34(%eax)
40370f:	83 f8 ff             	cmp    $0xffffffff,%eax
403712:	75 16                	jne    0x40372a
403714:	8b 06                	mov    (%esi),%eax
403716:	6a 00                	push   $0x0
403718:	8b 48 04             	mov    0x4(%eax),%ecx
40371b:	8b 44 31 0c          	mov    0xc(%ecx,%esi,1),%eax
40371f:	03 ce                	add    %esi,%ecx
403721:	83 c8 04             	or     $0x4,%eax
403724:	50                   	push   %eax
403725:	e8 76 e7 ff ff       	call   0x401ea0
40372a:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40372e:	e8 bc 35 00 00       	call   0x406cef
403733:	84 c0                	test   %al,%al
403735:	75 08                	jne    0x40373f
403737:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40373a:	e8 d1 0d 00 00       	call   0x404510
40373f:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
403743:	8b 4d e8             	mov    -0x18(%ebp),%ecx
403746:	8b 01                	mov    (%ecx),%eax
403748:	8b 40 04             	mov    0x4(%eax),%eax
40374b:	8b 4c 08 38          	mov    0x38(%eax,%ecx,1),%ecx
40374f:	85 c9                	test   %ecx,%ecx
403751:	74 05                	je     0x403758
403753:	8b 01                	mov    (%ecx),%eax
403755:	ff 50 08             	call   *0x8(%eax)
403758:	8b 17                	mov    (%edi),%edx
40375a:	8b 42 04             	mov    0x4(%edx),%eax
40375d:	83 7c 38 0c 00       	cmpl   $0x0,0xc(%eax,%edi,1)
403762:	0f 94 c0             	sete   %al
403765:	eb 02                	jmp    0x403769
403767:	b0 01                	mov    $0x1,%al
403769:	88 43 04             	mov    %al,0x4(%ebx)
40376c:	8b c3                	mov    %ebx,%eax
40376e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
403771:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
403778:	59                   	pop    %ecx
403779:	5f                   	pop    %edi
40377a:	5e                   	pop    %esi
40377b:	5b                   	pop    %ebx
40377c:	8b e5                	mov    %ebp,%esp
40377e:	5d                   	pop    %ebp
40377f:	c2 04 00             	ret    $0x4
403782:	cc                   	int3
403783:	cc                   	int3
403784:	cc                   	int3
403785:	cc                   	int3
403786:	cc                   	int3
403787:	cc                   	int3
403788:	cc                   	int3
403789:	cc                   	int3
40378a:	cc                   	int3
40378b:	cc                   	int3
40378c:	cc                   	int3
40378d:	cc                   	int3
40378e:	cc                   	int3
40378f:	cc                   	int3
403790:	55                   	push   %ebp
403791:	8b ec                	mov    %esp,%ebp
403793:	ff 75 0c             	push   0xc(%ebp)
403796:	33 d2                	xor    %edx,%edx
403798:	b8 04 00 00 00       	mov    $0x4,%eax
40379d:	39 51 38             	cmp    %edx,0x38(%ecx)
4037a0:	0f 45 c2             	cmovne %edx,%eax
4037a3:	0b 41 0c             	or     0xc(%ecx),%eax
4037a6:	0b 45 08             	or     0x8(%ebp),%eax
4037a9:	50                   	push   %eax
4037aa:	e8 f1 e6 ff ff       	call   0x401ea0
4037af:	5d                   	pop    %ebp
4037b0:	c2 08 00             	ret    $0x8
4037b3:	cc                   	int3
4037b4:	cc                   	int3
4037b5:	cc                   	int3
4037b6:	cc                   	int3
4037b7:	cc                   	int3