4317f3:	8b ec                	mov    %esp,%ebp
4317f5:	53                   	push   %ebx
4317f6:	8b d9                	mov    %ecx,%ebx
4317f8:	56                   	push   %esi
4317f9:	57                   	push   %edi
4317fa:	8b 03                	mov    (%ebx),%eax
4317fc:	8b 70 18             	mov    0x18(%eax),%esi
4317ff:	8b ce                	mov    %esi,%ecx
431801:	ff 15 c4 12 45 00    	call   *0x4512c4
431807:	8b cb                	mov    %ebx,%ecx
431809:	ff d6                	call   *%esi
43180b:	ff 75 08             	push   0x8(%ebp)
43180e:	8d 4b 24             	lea    0x24(%ebx),%ecx
431811:	e8 4a fe ff ff       	call   0x431660
431816:	8b 0b                	mov    (%ebx),%ecx
431818:	8b f8                	mov    %eax,%edi
43181a:	8b 71 1c             	mov    0x1c(%ecx),%esi
43181d:	8b ce                	mov    %esi,%ecx
43181f:	ff 15 c4 12 45 00    	call   *0x4512c4
431825:	8b cb                	mov    %ebx,%ecx
431827:	ff d6                	call   *%esi
431829:	8b c7                	mov    %edi,%eax
43182b:	5f                   	pop    %edi
43182c:	5e                   	pop    %esi
43182d:	5b                   	pop    %ebx
43182e:	5d                   	pop    %ebp
43182f:	c2 04 00             	ret    $0x4
431832:	8b ff                	mov    %edi,%edi
431834:	55                   	push   %ebp
431835:	8b ec                	mov    %esp,%ebp
431837:	83 ec 0c             	sub    $0xc,%esp
43183a:	53                   	push   %ebx
43183b:	56                   	push   %esi
43183c:	8b 75 0c             	mov    0xc(%ebp),%esi
43183f:	57                   	push   %edi
431840:	8b 7d 08             	mov    0x8(%ebp),%edi
431843:	89 4d fc             	mov    %ecx,-0x4(%ebp)
431846:	c6 06 01             	movb   $0x1,(%esi)
431849:	8b 57 04             	mov    0x4(%edi),%edx
43184c:	8b 4f 08             	mov    0x8(%edi),%ecx
43184f:	8b 5f 0c             	mov    0xc(%edi),%ebx
431852:	89 55 f8             	mov    %edx,-0x8(%ebp)
431855:	89 4d f4             	mov    %ecx,-0xc(%ebp)
431858:	85 d2                	test   %edx,%edx
43185a:	0f 84 e4 00 00 00    	je     0x431944
431860:	85 c9                	test   %ecx,%ecx
431862:	0f 84 dc 00 00 00    	je     0x431944
431868:	8d 4d f8             	lea    -0x8(%ebp),%ecx
43186b:	89 7d f8             	mov    %edi,-0x8(%ebp)
43186e:	e8 e9 09 00 00       	call   0x43225c
431873:	8b 75 f8             	mov    -0x8(%ebp),%esi
431876:	8b 47 10             	mov    0x10(%edi),%eax
431879:	89 75 f8             	mov    %esi,-0x8(%ebp)
43187c:	89 46 10             	mov    %eax,0x10(%esi)
43187f:	85 db                	test   %ebx,%ebx
431881:	74 12                	je     0x431895
431883:	39 7b 04             	cmp    %edi,0x4(%ebx)
431886:	75 05                	jne    0x43188d
431888:	89 73 04             	mov    %esi,0x4(%ebx)
43188b:	eb 03                	jmp    0x431890
43188d:	89 73 08             	mov    %esi,0x8(%ebx)
431890:	8b 5d fc             	mov    -0x4(%ebp),%ebx
431893:	eb 05                	jmp    0x43189a
431895:	8b 5d fc             	mov    -0x4(%ebp),%ebx
431898:	89 33                	mov    %esi,(%ebx)
43189a:	8b 47 04             	mov    0x4(%edi),%eax
43189d:	39 7e 0c             	cmp    %edi,0xc(%esi)
4318a0:	74 7a                	je     0x43191c
4318a2:	85 c0                	test   %eax,%eax
4318a4:	74 03                	je     0x4318a9
4318a6:	89 70 0c             	mov    %esi,0xc(%eax)
4318a9:	8b 47 08             	mov    0x8(%edi),%eax
4318ac:	85 c0                	test   %eax,%eax
4318ae:	74 03                	je     0x4318b3
4318b0:	89 70 0c             	mov    %esi,0xc(%eax)
4318b3:	8b 4e 0c             	mov    0xc(%esi),%ecx
4318b6:	8b 46 08             	mov    0x8(%esi),%eax
4318b9:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4318bc:	89 41 04             	mov    %eax,0x4(%ecx)
4318bf:	8b 56 04             	mov    0x4(%esi),%edx
4318c2:	85 d2                	test   %edx,%edx
4318c4:	74 06                	je     0x4318cc
4318c6:	8b 46 0c             	mov    0xc(%esi),%eax
4318c9:	89 42 0c             	mov    %eax,0xc(%edx)
4318cc:	8b 56 08             	mov    0x8(%esi),%edx
4318cf:	85 d2                	test   %edx,%edx
4318d1:	74 06                	je     0x4318d9
4318d3:	8b 46 0c             	mov    0xc(%esi),%eax
4318d6:	89 42 0c             	mov    %eax,0xc(%edx)
4318d9:	8b 47 04             	mov    0x4(%edi),%eax
4318dc:	89 46 04             	mov    %eax,0x4(%esi)
4318df:	8b 47 08             	mov    0x8(%edi),%eax
4318e2:	89 46 08             	mov    %eax,0x8(%esi)
4318e5:	8b 47 0c             	mov    0xc(%edi),%eax
4318e8:	89 46 0c             	mov    %eax,0xc(%esi)
4318eb:	ff 75 0c             	push   0xc(%ebp)
4318ee:	8d 45 fc             	lea    -0x4(%ebp),%eax
4318f1:	ff 71 08             	push   0x8(%ecx)
4318f4:	8b cb                	mov    %ebx,%ecx
4318f6:	50                   	push   %eax
4318f7:	e8 c7 00 00 00       	call   0x4319c3
4318fc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4318ff:	8b 49 0c             	mov    0xc(%ecx),%ecx
431902:	89 4d fc             	mov    %ecx,-0x4(%ebp)
431905:	85 c0                	test   %eax,%eax
431907:	0f 85 a6 00 00 00    	jne    0x4319b3
43190d:	3b ce                	cmp    %esi,%ecx
43190f:	75 da                	jne    0x4318eb
431911:	ff 75 0c             	push   0xc(%ebp)
431914:	8d 45 fc             	lea    -0x4(%ebp),%eax
431917:	e9 8c 00 00 00       	jmp    0x4319a8
43191c:	85 c0                	test   %eax,%eax
43191e:	74 03                	je     0x431923
431920:	89 70 0c             	mov    %esi,0xc(%eax)
431923:	8b 47 08             	mov    0x8(%edi),%eax
431926:	85 c0                	test   %eax,%eax
431928:	74 03                	je     0x43192d
43192a:	89 70 0c             	mov    %esi,0xc(%eax)
43192d:	8b 47 04             	mov    0x4(%edi),%eax
431930:	ff 75 0c             	push   0xc(%ebp)
431933:	89 46 04             	mov    %eax,0x4(%esi)
431936:	8b 47 0c             	mov    0xc(%edi),%eax
431939:	89 46 0c             	mov    %eax,0xc(%esi)
43193c:	8d 45 f8             	lea    -0x8(%ebp),%eax
43193f:	ff 76 04             	push   0x4(%esi)
431942:	eb 67                	jmp    0x4319ab
431944:	8b c2                	mov    %edx,%eax
431946:	85 db                	test   %ebx,%ebx
431948:	74 1e                	je     0x431968
43194a:	39 7b 04             	cmp    %edi,0x4(%ebx)
43194d:	75 0b                	jne    0x43195a
43194f:	85 d2                	test   %edx,%edx
431951:	75 02                	jne    0x431955
431953:	8b c1                	mov    %ecx,%eax
431955:	89 43 04             	mov    %eax,0x4(%ebx)
431958:	eb 09                	jmp    0x431963
43195a:	85 d2                	test   %edx,%edx
43195c:	75 02                	jne    0x431960
43195e:	8b c1                	mov    %ecx,%eax
431960:	89 43 08             	mov    %eax,0x8(%ebx)
431963:	8b 5d fc             	mov    -0x4(%ebp),%ebx
431966:	eb 0b                	jmp    0x431973
431968:	85 d2                	test   %edx,%edx
43196a:	75 02                	jne    0x43196e
43196c:	8b c1                	mov    %ecx,%eax
43196e:	8b 5d fc             	mov    -0x4(%ebp),%ebx
431971:	89 03                	mov    %eax,(%ebx)
431973:	85 d2                	test   %edx,%edx
431975:	74 1d                	je     0x431994
431977:	8b 47 0c             	mov    0xc(%edi),%eax
43197a:	8b cb                	mov    %ebx,%ecx
43197c:	89 42 0c             	mov    %eax,0xc(%edx)
43197f:	8b 47 10             	mov    0x10(%edi),%eax
431982:	56                   	push   %esi
431983:	89 42 10             	mov    %eax,0x10(%edx)
431986:	8d 45 f8             	lea    -0x8(%ebp),%eax
431989:	ff 72 08             	push   0x8(%edx)
43198c:	50                   	push   %eax
43198d:	e8 31 00 00 00       	call   0x4319c3
431992:	eb 1f                	jmp    0x4319b3
431994:	85 c9                	test   %ecx,%ecx
431996:	74 1b                	je     0x4319b3
431998:	8b 47 0c             	mov    0xc(%edi),%eax
43199b:	89 41 0c             	mov    %eax,0xc(%ecx)
43199e:	8b 47 10             	mov    0x10(%edi),%eax
4319a1:	89 41 10             	mov    %eax,0x10(%ecx)
4319a4:	8d 45 f4             	lea    -0xc(%ebp),%eax
4319a7:	56                   	push   %esi
4319a8:	ff 71 04             	push   0x4(%ecx)
4319ab:	50                   	push   %eax
4319ac:	8b cb                	mov    %ebx,%ecx
4319ae:	e8 96 01 00 00       	call   0x431b49
4319b3:	8b 4b 08             	mov    0x8(%ebx),%ecx
4319b6:	57                   	push   %edi
4319b7:	e8 6e 7e fe ff       	call   0x41982a
4319bc:	5f                   	pop    %edi
4319bd:	5e                   	pop    %esi
4319be:	5b                   	pop    %ebx
4319bf:	c9                   	leave
4319c0:	c2 08 00             	ret    $0x8
4319c3:	8b ff                	mov    %edi,%edi
4319c5:	55                   	push   %ebp
4319c6:	8b ec                	mov    %esp,%ebp
4319c8:	51                   	push   %ecx
4319c9:	53                   	push   %ebx
4319ca:	56                   	push   %esi
4319cb:	8b 75 10             	mov    0x10(%ebp),%esi
4319ce:	8b d9                	mov    %ecx,%ebx
4319d0:	33 c9                	xor    %ecx,%ecx
4319d2:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4319d5:	57                   	push   %edi
4319d6:	8b f9                	mov    %ecx,%edi
4319d8:	38 0e                	cmp    %cl,(%esi)
4319da:	0f 84 60 01 00 00    	je     0x431b40
4319e0:	8b 55 08             	mov    0x8(%ebp),%edx
4319e3:	8b 12                	mov    (%edx),%edx
4319e5:	8b 42 10             	mov    0x10(%edx),%eax
4319e8:	2b c1                	sub    %ecx,%eax
4319ea:	0f 84 47 01 00 00    	je     0x431b37
4319f0:	83 e8 01             	sub    $0x1,%eax
4319f3:	0f 84 39 01 00 00    	je     0x431b32
4319f9:	83 e8 01             	sub    $0x1,%eax
4319fc:	74 0a                	je     0x431a08
4319fe:	bf 07 00 00 80       	mov    $0x80000007,%edi
431a03:	e9 38 01 00 00       	jmp    0x431b40
431a08:	8b 4d 0c             	mov    0xc(%ebp),%ecx
431a0b:	8b 41 10             	mov    0x10(%ecx),%eax
431a0e:	83 e8 00             	sub    $0x0,%eax
431a11:	0f 84 d2 00 00 00    	je     0x431ae9
431a17:	83 e8 01             	sub    $0x1,%eax
431a1a:	74 3b                	je     0x431a57
431a1c:	83 e8 01             	sub    $0x1,%eax
431a1f:	75 dd                	jne    0x4319fe
431a21:	8b 72 0c             	mov    0xc(%edx),%esi
431a24:	85 f6                	test   %esi,%esi
431a26:	74 0f                	je     0x431a37
431a28:	39 56 04             	cmp    %edx,0x4(%esi)
431a2b:	75 05                	jne    0x431a32
431a2d:	89 4e 04             	mov    %ecx,0x4(%esi)
431a30:	eb 07                	jmp    0x431a39
431a32:	89 4e 08             	mov    %ecx,0x8(%esi)
431a35:	eb 02                	jmp    0x431a39
431a37:	89 0b                	mov    %ecx,(%ebx)
431a39:	8b 41 04             	mov    0x4(%ecx),%eax
431a3c:	85 c0                	test   %eax,%eax
431a3e:	74 03                	je     0x431a43
431a40:	89 50 0c             	mov    %edx,0xc(%eax)
431a43:	21 7a 10             	and    %edi,0x10(%edx)
431a46:	8b 41 04             	mov    0x4(%ecx),%eax
431a49:	89 42 08             	mov    %eax,0x8(%edx)
431a4c:	89 4a 0c             	mov    %ecx,0xc(%edx)
431a4f:	21 79 10             	and    %edi,0x10(%ecx)
431a52:	e9 ce 00 00 00       	jmp    0x431b25
431a57:	8b 42 08             	mov    0x8(%edx),%eax
431a5a:	8b 5a 0c             	mov    0xc(%edx),%ebx
431a5d:	8b 70 04             	mov    0x4(%eax),%esi
431a60:	85 db                	test   %ebx,%ebx
431a62:	74 0f                	je     0x431a73
431a64:	39 53 04             	cmp    %edx,0x4(%ebx)
431a67:	75 05                	jne    0x431a6e
431a69:	89 73 04             	mov    %esi,0x4(%ebx)
431a6c:	eb 0a                	jmp    0x431a78
431a6e:	89 73 08             	mov    %esi,0x8(%ebx)
431a71:	eb 05                	jmp    0x431a78
431a73:	8b 45 fc             	mov    -0x4(%ebp),%eax
431a76:	89 30                	mov    %esi,(%eax)
431a78:	89 72 0c             	mov    %esi,0xc(%edx)
431a7b:	89 71 0c             	mov    %esi,0xc(%ecx)
431a7e:	8b 46 04             	mov    0x4(%esi),%eax
431a81:	85 c0                	test   %eax,%eax
431a83:	74 03                	je     0x431a88
431a85:	89 50 0c             	mov    %edx,0xc(%eax)
431a88:	8b 46 08             	mov    0x8(%esi),%eax
431a8b:	85 c0                	test   %eax,%eax
431a8d:	74 03                	je     0x431a92
431a8f:	89 48 0c             	mov    %ecx,0xc(%eax)
431a92:	8b 46 04             	mov    0x4(%esi),%eax
431a95:	89 42 08             	mov    %eax,0x8(%edx)
431a98:	8b 46 08             	mov    0x8(%esi),%eax
431a9b:	89 41 04             	mov    %eax,0x4(%ecx)
431a9e:	8b 46 10             	mov    0x10(%esi),%eax
431aa1:	89 5e 0c             	mov    %ebx,0xc(%esi)
431aa4:	33 db                	xor    %ebx,%ebx
431aa6:	89 56 04             	mov    %edx,0x4(%esi)
431aa9:	89 4e 08             	mov    %ecx,0x8(%esi)
431aac:	2b c3                	sub    %ebx,%eax
431aae:	74 29                	je     0x431ad9
431ab0:	83 e8 01             	sub    $0x1,%eax
431ab3:	74 18                	je     0x431acd
431ab5:	83 e8 01             	sub    $0x1,%eax
431ab8:	74 07                	je     0x431ac1
431aba:	bf 07 00 00 80       	mov    $0x80000007,%edi
431abf:	eb 1e                	jmp    0x431adf
431ac1:	89 59 10             	mov    %ebx,0x10(%ecx)
431ac4:	c7 42 10 01 00 00 00 	movl   $0x1,0x10(%edx)
431acb:	eb 12                	jmp    0x431adf
431acd:	89 5a 10             	mov    %ebx,0x10(%edx)
431ad0:	c7 41 10 02 00 00 00 	movl   $0x2,0x10(%ecx)
431ad7:	eb 06                	jmp    0x431adf
431ad9:	89 59 10             	mov    %ebx,0x10(%ecx)
431adc:	89 5a 10             	mov    %ebx,0x10(%edx)
431adf:	8b 45 08             	mov    0x8(%ebp),%eax
431ae2:	89 5e 10             	mov    %ebx,0x10(%esi)
431ae5:	89 30                	mov    %esi,(%eax)
431ae7:	eb 57                	jmp    0x431b40
431ae9:	c6 06 00             	movb   $0x0,(%esi)
431aec:	8b 72 0c             	mov    0xc(%edx),%esi
431aef:	85 f6                	test   %esi,%esi
431af1:	74 0f                	je     0x431b02
431af3:	39 56 04             	cmp    %edx,0x4(%esi)
431af6:	75 05                	jne    0x431afd
431af8:	89 4e 04             	mov    %ecx,0x4(%esi)
431afb:	eb 07                	jmp    0x431b04
431afd:	89 4e 08             	mov    %ecx,0x8(%esi)
431b00:	eb 02                	jmp    0x431b04
431b02:	89 0b                	mov    %ecx,(%ebx)
431b04:	8b 41 04             	mov    0x4(%ecx),%eax
431b07:	85 c0                	test   %eax,%eax
431b09:	74 03                	je     0x431b0e
431b0b:	89 50 0c             	mov    %edx,0xc(%eax)
431b0e:	c7 42 10 02 00 00 00 	movl   $0x2,0x10(%edx)
431b15:	8b 41 04             	mov    0x4(%ecx),%eax
431b18:	89 42 08             	mov    %eax,0x8(%edx)
431b1b:	89 4a 0c             	mov    %ecx,0xc(%edx)
431b1e:	c7 41 10 01 00 00 00 	movl   $0x1,0x10(%ecx)
431b25:	8b 45 08             	mov    0x8(%ebp),%eax
431b28:	89 51 04             	mov    %edx,0x4(%ecx)
431b2b:	89 71 0c             	mov    %esi,0xc(%ecx)
431b2e:	89 08                	mov    %ecx,(%eax)
431b30:	eb 0e                	jmp    0x431b40
431b32:	89 4a 10             	mov    %ecx,0x10(%edx)
431b35:	eb 09                	jmp    0x431b40
431b37:	c7 42 10 02 00 00 00 	movl   $0x2,0x10(%edx)
431b3e:	88 0e                	mov    %cl,(%esi)
431b40:	8b c7                	mov    %edi,%eax
431b42:	5f                   	pop    %edi
431b43:	5e                   	pop    %esi
431b44:	5b                   	pop    %ebx
431b45:	c9                   	leave
431b46:	c2 0c 00             	ret    $0xc
431b49:	8b ff                	mov    %edi,%edi
431b4b:	55                   	push   %ebp
431b4c:	8b ec                	mov    %esp,%ebp
431b4e:	51                   	push   %ecx
431b4f:	53                   	push   %ebx
431b50:	56                   	push   %esi
431b51:	8b 75 10             	mov    0x10(%ebp),%esi
431b54:	8b d9                	mov    %ecx,%ebx
431b56:	33 c9                	xor    %ecx,%ecx
431b58:	57                   	push   %edi
431b59:	8b f9                	mov    %ecx,%edi
431b5b:	38 0e                	cmp    %cl,(%esi)
431b5d:	0f 84 66 01 00 00    	je     0x431cc9
431b63:	8b 55 08             	mov    0x8(%ebp),%edx
431b66:	8b 12                	mov    (%edx),%edx
431b68:	8b 42 10             	mov    0x10(%edx),%eax
431b6b:	2b c1                	sub    %ecx,%eax
431b6d:	0f 84 4d 01 00 00    	je     0x431cc0
431b73:	83 e8 01             	sub    $0x1,%eax
431b76:	74 17                	je     0x431b8f
431b78:	83 e8 01             	sub    $0x1,%eax
431b7b:	74 0a                	je     0x431b87
431b7d:	bf 07 00 00 80       	mov    $0x80000007,%edi
431b82:	e9 42 01 00 00       	jmp    0x431cc9
431b87:	89 4a 10             	mov    %ecx,0x10(%edx)
431b8a:	e9 3a 01 00 00       	jmp    0x431cc9
431b8f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
431b92:	8b 41 10             	mov    0x10(%ecx),%eax
431b95:	83 e8 00             	sub    $0x0,%eax
431b98:	0f 84 d9 00 00 00    	je     0x431c77