4386ab:	74 c0                	je     0x43866d
4386ad:	8d 45 14             	lea    0x14(%ebp),%eax
4386b0:	50                   	push   %eax
4386b1:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4386b4:	e8 87 27 00 00       	call   0x43ae40
4386b9:	84 c0                	test   %al,%al
4386bb:	75 61                	jne    0x43871e
4386bd:	38 45 10             	cmp    %al,0x10(%ebp)
4386c0:	75 08                	jne    0x4386ca
4386c2:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4386c5:	e8 4d d8 ff ff       	call   0x435f17
4386ca:	8b 03                	mov    (%ebx),%eax
4386cc:	6a 00                	push   $0x0
4386ce:	ff 75 12             	push   0x12(%ebp)
4386d1:	8b 70 38             	mov    0x38(%eax),%esi
4386d4:	8b ce                	mov    %esi,%ecx
4386d6:	ff 15 54 43 49 00    	call   *0x494354
4386dc:	8b cb                	mov    %ebx,%ecx
4386de:	ff d6                	call   *%esi
4386e0:	3c 3a                	cmp    $0x3a,%al
4386e2:	74 32                	je     0x438716
4386e4:	3c 2c                	cmp    $0x2c,%al
4386e6:	74 2e                	je     0x438716
4386e8:	3c 2f                	cmp    $0x2f,%al
4386ea:	75 32                	jne    0x43871e
4386ec:	eb 28                	jmp    0x438716
4386ee:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
4386f2:	75 08                	jne    0x4386fc
4386f4:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4386f7:	e8 1b d8 ff ff       	call   0x435f17
4386fc:	8b 03                	mov    (%ebx),%eax
4386fe:	ff 75 12             	push   0x12(%ebp)
438701:	6a 48                	push   $0x48
438703:	8b 70 10             	mov    0x10(%eax),%esi
438706:	8b ce                	mov    %esi,%ecx
438708:	ff 15 54 43 49 00    	call   *0x494354
43870e:	8b cb                	mov    %ebx,%ecx
438710:	ff d6                	call   *%esi
438712:	84 c0                	test   %al,%al
438714:	74 18                	je     0x43872e
438716:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438719:	e8 23 c3 ff ff       	call   0x434a41
43871e:	8d 45 14             	lea    0x14(%ebp),%eax
438721:	50                   	push   %eax
438722:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438725:	e8 16 27 00 00       	call   0x43ae40
43872a:	84 c0                	test   %al,%al
43872c:	74 c0                	je     0x4386ee
43872e:	8d 45 14             	lea    0x14(%ebp),%eax
438731:	50                   	push   %eax
438732:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438735:	e8 06 27 00 00       	call   0x43ae40
43873a:	84 c0                	test   %al,%al
43873c:	0f 85 f7 00 00 00    	jne    0x438839
438742:	38 45 10             	cmp    %al,0x10(%ebp)
438745:	75 08                	jne    0x43874f
438747:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43874a:	e8 c8 d7 ff ff       	call   0x435f17
43874f:	8b 03                	mov    (%ebx),%eax
438751:	ff 75 12             	push   0x12(%ebp)
438754:	6a 04                	push   $0x4
438756:	8b 70 10             	mov    0x10(%eax),%esi
438759:	8b ce                	mov    %esi,%ecx
43875b:	ff 15 54 43 49 00    	call   *0x494354
438761:	8b cb                	mov    %ebx,%ecx
438763:	ff d6                	call   *%esi
438765:	8b 75 ec             	mov    -0x14(%ebp),%esi
438768:	84 c0                	test   %al,%al
43876a:	75 4b                	jne    0x4387b7
43876c:	83 fe 02             	cmp    $0x2,%esi
43876f:	75 07                	jne    0x438778
438771:	09 37                	or     %esi,(%edi)
438773:	e9 c1 00 00 00       	jmp    0x438839
438778:	ff 75 24             	push   0x24(%ebp)
43877b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43877e:	8d 45 e0             	lea    -0x20(%ebp),%eax
438781:	57                   	push   %edi
438782:	ff 75 1c             	push   0x1c(%ebp)
438785:	ff 75 18             	push   0x18(%ebp)
438788:	ff 75 14             	push   0x14(%ebp)
43878b:	ff 75 10             	push   0x10(%ebp)
43878e:	ff 75 0c             	push   0xc(%ebp)
438791:	50                   	push   %eax
438792:	e8 80 27 00 00       	call   0x43af17
438797:	8b 08                	mov    (%eax),%ecx
438799:	89 4d 0c             	mov    %ecx,0xc(%ebp)
43879c:	8b 40 04             	mov    0x4(%eax),%eax
43879f:	89 45 10             	mov    %eax,0x10(%ebp)
4387a2:	83 fe 04             	cmp    $0x4,%esi
4387a5:	0f 85 8e 00 00 00    	jne    0x438839
4387ab:	c7 45 ec 03 00 00 00 	movl   $0x3,-0x14(%ebp)
4387b2:	e9 82 00 00 00       	jmp    0x438839
4387b7:	83 fe 01             	cmp    $0x1,%esi
4387ba:	74 28                	je     0x4387e4
4387bc:	83 fe 03             	cmp    $0x3,%esi
4387bf:	74 23                	je     0x4387e4
4387c1:	8b 45 24             	mov    0x24(%ebp),%eax
4387c4:	53                   	push   %ebx
4387c5:	83 c0 0c             	add    $0xc,%eax
4387c8:	50                   	push   %eax
4387c9:	6a 1f                	push   $0x1f
4387cb:	6a 01                	push   $0x1
4387cd:	8d 45 14             	lea    0x14(%ebp),%eax
4387d0:	50                   	push   %eax
4387d1:	8d 45 0c             	lea    0xc(%ebp),%eax
4387d4:	50                   	push   %eax
4387d5:	ff 75 f0             	push   -0x10(%ebp)
4387d8:	e8 15 a9 ff ff       	call   0x4330f2
4387dd:	83 c4 1c             	add    $0x1c,%esp
4387e0:	09 07                	or     %eax,(%edi)
4387e2:	eb 55                	jmp    0x438839
4387e4:	8b 75 24             	mov    0x24(%ebp),%esi
4387e7:	8d 45 14             	lea    0x14(%ebp),%eax
4387ea:	53                   	push   %ebx
4387eb:	83 c6 10             	add    $0x10,%esi
4387ee:	56                   	push   %esi
4387ef:	6a 0c                	push   $0xc
4387f1:	6a 01                	push   $0x1
4387f3:	50                   	push   %eax
4387f4:	8d 45 0c             	lea    0xc(%ebp),%eax
4387f7:	50                   	push   %eax
4387f8:	ff 75 f0             	push   -0x10(%ebp)
4387fb:	e8 f2 a8 ff ff       	call   0x4330f2
438800:	09 07                	or     %eax,(%edi)
438802:	83 c4 1c             	add    $0x1c,%esp
438805:	ff 0e                	decl   (%esi)
438807:	eb 30                	jmp    0x438839
438809:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
43880d:	75 08                	jne    0x438817
43880f:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438812:	e8 00 d7 ff ff       	call   0x435f17
438817:	8b 03                	mov    (%ebx),%eax
438819:	ff 75 12             	push   0x12(%ebp)
43881c:	6a 48                	push   $0x48
43881e:	8b 70 10             	mov    0x10(%eax),%esi
438821:	8b ce                	mov    %esi,%ecx
438823:	ff 15 54 43 49 00    	call   *0x494354
438829:	8b cb                	mov    %ebx,%ecx
43882b:	ff d6                	call   *%esi
43882d:	84 c0                	test   %al,%al
43882f:	74 18                	je     0x438849
438831:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438834:	e8 08 c2 ff ff       	call   0x434a41
438839:	8d 45 14             	lea    0x14(%ebp),%eax
43883c:	50                   	push   %eax
43883d:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438840:	e8 fb 25 00 00       	call   0x43ae40
438845:	84 c0                	test   %al,%al
438847:	74 c0                	je     0x438809
438849:	8d 45 14             	lea    0x14(%ebp),%eax
43884c:	50                   	push   %eax
43884d:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438850:	e8 eb 25 00 00       	call   0x43ae40
438855:	84 c0                	test   %al,%al
438857:	75 61                	jne    0x4388ba
438859:	38 45 10             	cmp    %al,0x10(%ebp)
43885c:	75 08                	jne    0x438866
43885e:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438861:	e8 b1 d6 ff ff       	call   0x435f17
438866:	8b 03                	mov    (%ebx),%eax
438868:	6a 00                	push   $0x0
43886a:	ff 75 12             	push   0x12(%ebp)
43886d:	8b 70 38             	mov    0x38(%eax),%esi
438870:	8b ce                	mov    %esi,%ecx
438872:	ff 15 54 43 49 00    	call   *0x494354
438878:	8b cb                	mov    %ebx,%ecx
43887a:	ff d6                	call   *%esi
43887c:	3c 3a                	cmp    $0x3a,%al
43887e:	74 32                	je     0x4388b2
438880:	3c 2c                	cmp    $0x2c,%al
438882:	74 2e                	je     0x4388b2
438884:	3c 2f                	cmp    $0x2f,%al
438886:	75 32                	jne    0x4388ba
438888:	eb 28                	jmp    0x4388b2
43888a:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
43888e:	75 08                	jne    0x438898
438890:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438893:	e8 7f d6 ff ff       	call   0x435f17
438898:	8b 03                	mov    (%ebx),%eax
43889a:	ff 75 12             	push   0x12(%ebp)
43889d:	6a 48                	push   $0x48
43889f:	8b 70 10             	mov    0x10(%eax),%esi
4388a2:	8b ce                	mov    %esi,%ecx
4388a4:	ff 15 54 43 49 00    	call   *0x494354
4388aa:	8b cb                	mov    %ebx,%ecx
4388ac:	ff d6                	call   *%esi
4388ae:	84 c0                	test   %al,%al
4388b0:	74 18                	je     0x4388ca
4388b2:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4388b5:	e8 87 c1 ff ff       	call   0x434a41
4388ba:	8d 45 14             	lea    0x14(%ebp),%eax
4388bd:	50                   	push   %eax
4388be:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4388c1:	e8 7a 25 00 00       	call   0x43ae40
4388c6:	84 c0                	test   %al,%al
4388c8:	74 c0                	je     0x43888a
4388ca:	8d 45 14             	lea    0x14(%ebp),%eax
4388cd:	50                   	push   %eax
4388ce:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4388d1:	e8 6a 25 00 00       	call   0x43ae40
4388d6:	84 c0                	test   %al,%al
4388d8:	74 08                	je     0x4388e2
4388da:	83 0f 02             	orl    $0x2,(%edi)
4388dd:	e9 ce 00 00 00       	jmp    0x4389b0
4388e2:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
4388e6:	75 08                	jne    0x4388f0
4388e8:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4388eb:	e8 27 d6 ff ff       	call   0x435f17
4388f0:	8b 03                	mov    (%ebx),%eax
4388f2:	ff 75 12             	push   0x12(%ebp)
4388f5:	6a 04                	push   $0x4
4388f7:	8b 70 10             	mov    0x10(%eax),%esi
4388fa:	8b ce                	mov    %esi,%ecx
4388fc:	ff 15 54 43 49 00    	call   *0x494354
438902:	8b cb                	mov    %ebx,%ecx
438904:	ff d6                	call   *%esi
438906:	84 c0                	test   %al,%al
438908:	75 27                	jne    0x438931
43890a:	83 7d ec 04          	cmpl   $0x4,-0x14(%ebp)
43890e:	75 ca                	jne    0x4388da
438910:	ff 75 24             	push   0x24(%ebp)
438913:	8b 4d f0             	mov    -0x10(%ebp),%ecx
438916:	8d 45 e0             	lea    -0x20(%ebp),%eax
438919:	57                   	push   %edi
43891a:	ff 75 1c             	push   0x1c(%ebp)
43891d:	ff 75 18             	push   0x18(%ebp)
438920:	ff 75 14             	push   0x14(%ebp)
438923:	ff 75 10             	push   0x10(%ebp)
438926:	ff 75 0c             	push   0xc(%ebp)
438929:	50                   	push   %eax
43892a:	e8 e8 25 00 00       	call   0x43af17
43892f:	eb 74                	jmp    0x4389a5
438931:	8b 45 ec             	mov    -0x14(%ebp),%eax
438934:	83 f8 04             	cmp    $0x4,%eax
438937:	75 25                	jne    0x43895e
438939:	8b 75 24             	mov    0x24(%ebp),%esi
43893c:	8d 45 14             	lea    0x14(%ebp),%eax
43893f:	53                   	push   %ebx
438940:	83 c6 10             	add    $0x10,%esi
438943:	56                   	push   %esi
438944:	6a 0c                	push   $0xc
438946:	6a 01                	push   $0x1
438948:	50                   	push   %eax
438949:	8d 45 0c             	lea    0xc(%ebp),%eax
43894c:	50                   	push   %eax
43894d:	ff 75 f0             	push   -0x10(%ebp)
438950:	e8 9d a7 ff ff       	call   0x4330f2
438955:	09 07                	or     %eax,(%edi)
438957:	83 c4 1c             	add    $0x1c,%esp
43895a:	ff 0e                	decl   (%esi)
43895c:	eb 52                	jmp    0x4389b0
43895e:	83 f8 03             	cmp    $0x3,%eax
438961:	75 23                	jne    0x438986
438963:	8b 45 24             	mov    0x24(%ebp),%eax
438966:	53                   	push   %ebx
438967:	83 c0 0c             	add    $0xc,%eax
43896a:	50                   	push   %eax
43896b:	6a 1f                	push   $0x1f
43896d:	6a 01                	push   $0x1
43896f:	8d 45 14             	lea    0x14(%ebp),%eax
438972:	50                   	push   %eax
438973:	8d 45 0c             	lea    0xc(%ebp),%eax
438976:	50                   	push   %eax
438977:	ff 75 f0             	push   -0x10(%ebp)
43897a:	e8 73 a7 ff ff       	call   0x4330f2
43897f:	83 c4 1c             	add    $0x1c,%esp
438982:	09 07                	or     %eax,(%edi)
438984:	eb 2a                	jmp    0x4389b0
438986:	ff 75 24             	push   0x24(%ebp)
438989:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43898c:	8d 45 d8             	lea    -0x28(%ebp),%eax
43898f:	57                   	push   %edi
438990:	ff 75 1c             	push   0x1c(%ebp)
438993:	ff 75 18             	push   0x18(%ebp)
438996:	ff 75 14             	push   0x14(%ebp)
438999:	ff 75 10             	push   0x10(%ebp)
43899c:	ff 75 0c             	push   0xc(%ebp)
43899f:	50                   	push   %eax
4389a0:	e8 52 26 00 00       	call   0x43aff7
4389a5:	8b 08                	mov    (%eax),%ecx
4389a7:	89 4d 0c             	mov    %ecx,0xc(%ebp)
4389aa:	8b 40 04             	mov    0x4(%eax),%eax
4389ad:	89 45 10             	mov    %eax,0x10(%ebp)
4389b0:	8d 45 14             	lea    0x14(%ebp),%eax
4389b3:	50                   	push   %eax
4389b4:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4389b7:	e8 84 24 00 00       	call   0x43ae40
4389bc:	84 c0                	test   %al,%al
4389be:	74 03                	je     0x4389c3
4389c0:	83 0f 01             	orl    $0x1,(%edi)
4389c3:	8b 45 08             	mov    0x8(%ebp),%eax
4389c6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4389c9:	89 08                	mov    %ecx,(%eax)
4389cb:	8b 4d 10             	mov    0x10(%ebp),%ecx
4389ce:	89 48 04             	mov    %ecx,0x4(%eax)
4389d1:	e8 3d 70 00 00       	call   0x43fa13
4389d6:	c2 20 00             	ret    $0x20
4389d9:	6a 1c                	push   $0x1c
4389db:	b8 b1 25 49 00       	mov    $0x4925b1,%eax
4389e0:	e8 65 70 00 00       	call   0x43fa4a
4389e5:	8b f1                	mov    %ecx,%esi
4389e7:	89 75 f0             	mov    %esi,-0x10(%ebp)
4389ea:	8b 45 1c             	mov    0x1c(%ebp),%eax
4389ed:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4389f0:	ff 70 30             	push   0x30(%eax)
4389f3:	e8 44 04 ff ff       	call   0x428e3c
4389f8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4389fc:	8d 45 e8             	lea    -0x18(%ebp),%eax
4389ff:	50                   	push   %eax
438a00:	e8 5d 03 fd ff       	call   0x408d62
438a05:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
438a09:	8b d8                	mov    %eax,%ebx
438a0b:	59                   	pop    %ecx
438a0c:	8d 4d e8             	lea    -0x18(%ebp),%ecx
438a0f:	e8 d3 69 fd ff       	call   0x40f3e7
438a14:	8b ce                	mov    %esi,%ecx
438a16:	e8 0f e6 ff ff       	call   0x43702a
438a1b:	8b f0                	mov    %eax,%esi
438a1d:	89 75 ec             	mov    %esi,-0x14(%ebp)
438a20:	85 f6                	test   %esi,%esi
438a22:	75 07                	jne    0x438a2b
438a24:	c7 45 ec 02 00 00 00 	movl   $0x2,-0x14(%ebp)
438a2b:	8d 45 14             	lea    0x14(%ebp),%eax
438a2e:	50                   	push   %eax
438a2f:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438a32:	e8 bd 81 fe ff       	call   0x420bf4
438a37:	8b 7d 20             	mov    0x20(%ebp),%edi
438a3a:	84 c0                	test   %al,%al
438a3c:	0f 85 09 01 00 00    	jne    0x438b4b
438a42:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
438a46:	75 08                	jne    0x438a50
438a48:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438a4b:	e8 45 3a fe ff       	call   0x41c495
438a50:	8b 03                	mov    (%ebx),%eax
438a52:	ff 75 12             	push   0x12(%ebp)
438a55:	6a 04                	push   $0x4
438a57:	8b 70 10             	mov    0x10(%eax),%esi
438a5a:	8b ce                	mov    %esi,%ecx
438a5c:	ff 15 54 43 49 00    	call   *0x494354
438a62:	8b cb                	mov    %ebx,%ecx
438a64:	ff d6                	call   *%esi
438a66:	84 c0                	test   %al,%al
438a68:	75 30                	jne    0x438a9a
438a6a:	8b 45 24             	mov    0x24(%ebp),%eax
438a6d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
438a70:	50                   	push   %eax
438a71:	57                   	push   %edi
438a72:	ff 75 1c             	push   0x1c(%ebp)
438a75:	8d 45 e8             	lea    -0x18(%ebp),%eax
438a78:	ff 75 18             	push   0x18(%ebp)