401963:	89 5d f4             	mov    %ebx,-0xc(%ebp)
401966:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
401969:	74 10                	je     0x40197b
40196b:	6a 01                	push   $0x1
40196d:	53                   	push   %ebx
40196e:	53                   	push   %ebx
40196f:	53                   	push   %ebx
401970:	53                   	push   %ebx
401971:	ff 75 f8             	push   -0x8(%ebp)
401974:	ff 36                	push   (%esi)
401976:	ff d7                	call   *%edi
401978:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40197b:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
40197e:	74 3d                	je     0x4019bd
401980:	6a 01                	push   $0x1
401982:	53                   	push   %ebx
401983:	53                   	push   %ebx
401984:	53                   	push   %ebx
401985:	53                   	push   %ebx
401986:	ff 75 fc             	push   -0x4(%ebp)
401989:	ff 36                	push   (%esi)
40198b:	ff d7                	call   *%edi
40198d:	eb 2e                	jmp    0x4019bd
40198f:	8d 86 8c 00 00 00    	lea    0x8c(%esi),%eax
401995:	89 5d 08             	mov    %ebx,0x8(%ebp)
401998:	50                   	push   %eax
401999:	8d 45 08             	lea    0x8(%ebp),%eax
40199c:	50                   	push   %eax
40199d:	6a 34                	push   $0x34
40199f:	8d 45 cc             	lea    -0x34(%ebp),%eax
4019a2:	50                   	push   %eax
4019a3:	ff 76 3c             	push   0x3c(%esi)
4019a6:	ff 15 e0 10 43 00    	call   *0x4310e0
4019ac:	85 c0                	test   %eax,%eax
4019ae:	75 11                	jne    0x4019c1
4019b0:	ff 15 08 11 43 00    	call   *0x431108
4019b6:	3d e5 03 00 00       	cmp    $0x3e5,%eax
4019bb:	74 04                	je     0x4019c1
4019bd:	32 c0                	xor    %al,%al
4019bf:	eb 08                	jmp    0x4019c9
4019c1:	57                   	push   %edi
4019c2:	8b ce                	mov    %esi,%ecx
4019c4:	e8 4f 01 00 00       	call   0x401b18
4019c9:	5f                   	pop    %edi
4019ca:	5e                   	pop    %esi
4019cb:	5b                   	pop    %ebx
4019cc:	c9                   	leave
4019cd:	c2 04 00             	ret    $0x4
4019d0:	55                   	push   %ebp
4019d1:	8b ec                	mov    %esp,%ebp
4019d3:	51                   	push   %ecx
4019d4:	56                   	push   %esi
4019d5:	8b f1                	mov    %ecx,%esi
4019d7:	80 be 88 00 00 00 00 	cmpb   $0x0,0x88(%esi)
4019de:	74 1b                	je     0x4019fb
4019e0:	ff b6 9c 00 00 00    	push   0x9c(%esi)
4019e6:	c7 86 84 00 00 00 01 	movl   $0x1,0x84(%esi)
4019ed:	00 00 00
4019f0:	ff 15 10 11 43 00    	call   *0x431110
4019f6:	e9 ef 00 00 00       	jmp    0x401aea
4019fb:	8b 86 84 00 00 00    	mov    0x84(%esi),%eax
401a01:	48                   	dec    %eax
401a02:	83 f8 09             	cmp    $0x9,%eax
401a05:	0f 87 d5 00 00 00    	ja     0x401ae0
401a0b:	ff 24 85 f0 1a 40 00 	jmp    *0x401af0(,%eax,4)
401a12:	e8 f7 fa ff ff       	call   0x40150e
401a17:	e9 ce 00 00 00       	jmp    0x401aea
401a1c:	e8 39 fb ff ff       	call   0x40155a
401a21:	e9 c4 00 00 00       	jmp    0x401aea
401a26:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
401a2a:	8d 45 fc             	lea    -0x4(%ebp),%eax
401a2d:	6a 00                	push   $0x0
401a2f:	50                   	push   %eax
401a30:	8d 86 8c 00 00 00    	lea    0x8c(%esi),%eax
401a36:	50                   	push   %eax
401a37:	ff 76 3c             	push   0x3c(%esi)
401a3a:	ff 15 14 11 43 00    	call   *0x431114
401a40:	85 c0                	test   %eax,%eax
401a42:	75 1f                	jne    0x401a63
401a44:	ff 15 08 11 43 00    	call   *0x431108
401a4a:	3d e4 03 00 00       	cmp    $0x3e4,%eax
401a4f:	0f 84 95 00 00 00    	je     0x401aea
401a55:	6a 0a                	push   $0xa
401a57:	8b ce                	mov    %esi,%ecx
401a59:	e8 f3 fd ff ff       	call   0x401851
401a5e:	e9 87 00 00 00       	jmp    0x401aea
401a63:	6a 04                	push   $0x4
401a65:	eb f0                	jmp    0x401a57
401a67:	e8 58 fb ff ff       	call   0x4015c4
401a6c:	eb 7c                	jmp    0x401aea
401a6e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
401a72:	8d 45 fc             	lea    -0x4(%ebp),%eax
401a75:	6a 00                	push   $0x0
401a77:	50                   	push   %eax
401a78:	8d 86 8c 00 00 00    	lea    0x8c(%esi),%eax
401a7e:	50                   	push   %eax
401a7f:	ff 76 3c             	push   0x3c(%esi)
401a82:	ff 15 14 11 43 00    	call   *0x431114
401a88:	85 c0                	test   %eax,%eax
401a8a:	74 0a                	je     0x401a96
401a8c:	83 7d fc 34          	cmpl   $0x34,-0x4(%ebp)
401a90:	75 04                	jne    0x401a96
401a92:	6a 06                	push   $0x6
401a94:	eb 02                	jmp    0x401a98
401a96:	6a 0a                	push   $0xa
401a98:	58                   	pop    %eax
401a99:	50                   	push   %eax
401a9a:	eb bb                	jmp    0x401a57
401a9c:	e8 83 fb ff ff       	call   0x401624
401aa1:	eb 47                	jmp    0x401aea
401aa3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
401aa7:	8d 45 fc             	lea    -0x4(%ebp),%eax
401aaa:	6a 00                	push   $0x0
401aac:	50                   	push   %eax
401aad:	8d 86 8c 00 00 00    	lea    0x8c(%esi),%eax
401ab3:	50                   	push   %eax
401ab4:	ff 76 3c             	push   0x3c(%esi)
401ab7:	ff 15 14 11 43 00    	call   *0x431114
401abd:	6a 08                	push   $0x8
401abf:	59                   	pop    %ecx
401ac0:	6a 0a                	push   $0xa
401ac2:	5a                   	pop    %edx
401ac3:	85 c0                	test   %eax,%eax
401ac5:	0f 44 ca             	cmove  %edx,%ecx
401ac8:	51                   	push   %ecx
401ac9:	eb 8c                	jmp    0x401a57
401acb:	e8 56 fc ff ff       	call   0x401726
401ad0:	eb 18                	jmp    0x401aea
401ad2:	e8 a4 fc ff ff       	call   0x40177b
401ad7:	eb 11                	jmp    0x401aea
401ad9:	e8 07 fd ff ff       	call   0x4017e5
401ade:	eb 0a                	jmp    0x401aea
401ae0:	c7 86 84 00 00 00 01 	movl   $0x1,0x84(%esi)
401ae7:	00 00 00
401aea:	5e                   	pop    %esi
401aeb:	c9                   	leave
401aec:	c3                   	ret
401aed:	8d 49 00             	lea    0x0(%ecx),%ecx
401af0:	12 1a                	adc    (%edx),%bl
401af2:	40                   	inc    %eax
401af3:	00 1c 1a             	add    %bl,(%edx,%ebx,1)
401af6:	40                   	inc    %eax
401af7:	00 26                	add    %ah,(%esi)
401af9:	1a 40 00             	sbb    0x0(%eax),%al
401afc:	67 1a 40 00          	sbb    0x0(%bx,%si),%al
401b00:	6e                   	outsb  %ds:(%esi),(%dx)
401b01:	1a 40 00             	sbb    0x0(%eax),%al
401b04:	9c                   	pushf
401b05:	1a 40 00             	sbb    0x0(%eax),%al
401b08:	a3 1a 40 00 cb       	mov    %eax,0xcb00401a
401b0d:	1a 40 00             	sbb    0x0(%eax),%al
401b10:	d2 1a                	rcrb   %cl,(%edx)
401b12:	40                   	inc    %eax
401b13:	00 d9                	add    %bl,%cl
401b15:	1a 40 00             	sbb    0x0(%eax),%al
401b18:	55                   	push   %ebp
401b19:	8b ec                	mov    %esp,%ebp
401b1b:	51                   	push   %ecx
401b1c:	51                   	push   %ecx
401b1d:	53                   	push   %ebx
401b1e:	56                   	push   %esi
401b1f:	57                   	push   %edi
401b20:	8b 7d 08             	mov    0x8(%ebp),%edi
401b23:	8d 45 fc             	lea    -0x4(%ebp),%eax
401b26:	6a 14                	push   $0x14
401b28:	6a ff                	push   $0xffffffff
401b2a:	57                   	push   %edi
401b2b:	68 ac 1b 40 00       	push   $0x401bac
401b30:	33 db                	xor    %ebx,%ebx
401b32:	8b f1                	mov    %ecx,%esi
401b34:	89 5d fc             	mov    %ebx,-0x4(%ebp)
401b37:	ff 77 30             	push   0x30(%edi)
401b3a:	50                   	push   %eax
401b3b:	ff 15 e4 10 43 00    	call   *0x4310e4
401b41:	85 c0                	test   %eax,%eax
401b43:	74 52                	je     0x401b97
401b45:	8b 45 fc             	mov    -0x4(%ebp),%eax
401b48:	6a 08                	push   $0x8
401b4a:	6a ff                	push   $0xffffffff
401b4c:	57                   	push   %edi
401b4d:	89 47 38             	mov    %eax,0x38(%edi)
401b50:	8d 45 f8             	lea    -0x8(%ebp),%eax
401b53:	68 d7 1b 40 00       	push   $0x401bd7
401b58:	89 5d f8             	mov    %ebx,-0x8(%ebp)
401b5b:	ff 77 2c             	push   0x2c(%edi)
401b5e:	50                   	push   %eax
401b5f:	ff 15 e4 10 43 00    	call   *0x4310e4
401b65:	85 c0                	test   %eax,%eax
401b67:	74 2e                	je     0x401b97
401b69:	8b 45 f8             	mov    -0x8(%ebp),%eax
401b6c:	56                   	push   %esi
401b6d:	89 47 3c             	mov    %eax,0x3c(%edi)
401b70:	ff 15 14 10 43 00    	call   *0x431014
401b76:	38 9e 88 00 00 00    	cmp    %bl,0x88(%esi)
401b7c:	75 0e                	jne    0x401b8c
401b7e:	8d 45 08             	lea    0x8(%ebp),%eax
401b81:	50                   	push   %eax
401b82:	8d 4e 18             	lea    0x18(%esi),%ecx
401b85:	e8 ad 03 00 00       	call   0x401f37
401b8a:	b3 01                	mov    $0x1,%bl
401b8c:	56                   	push   %esi
401b8d:	ff 15 18 10 43 00    	call   *0x431018
401b93:	8a c3                	mov    %bl,%al
401b95:	eb 02                	jmp    0x401b99
401b97:	32 c0                	xor    %al,%al
401b99:	5f                   	pop    %edi
401b9a:	5e                   	pop    %esi
401b9b:	5b                   	pop    %ebx
401b9c:	c9                   	leave
401b9d:	c2 04 00             	ret    $0x4
401ba0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
401ba4:	e8 27 fe ff ff       	call   0x4019d0
401ba9:	c2 08 00             	ret    $0x8
401bac:	56                   	push   %esi
401bad:	8b 74 24 08          	mov    0x8(%esp),%esi
401bb1:	57                   	push   %edi
401bb2:	8b 3e                	mov    (%esi),%edi
401bb4:	80 7f 69 00          	cmpb   $0x0,0x69(%edi)
401bb8:	74 07                	je     0x401bc1
401bba:	8b ce                	mov    %esi,%ecx
401bbc:	e8 34 0b 00 00       	call   0x4026f5
401bc1:	56                   	push   %esi
401bc2:	8b cf                	mov    %edi,%ecx
401bc4:	e8 91 00 00 00       	call   0x401c5a
401bc9:	ff 76 30             	push   0x30(%esi)
401bcc:	ff 15 10 11 43 00    	call   *0x431110
401bd2:	5f                   	pop    %edi
401bd3:	5e                   	pop    %esi
401bd4:	c2 08 00             	ret    $0x8
401bd7:	8b 4c 24 04          	mov    0x4(%esp),%ecx
401bdb:	51                   	push   %ecx
401bdc:	8b 09                	mov    (%ecx),%ecx
401bde:	e8 03 00 00 00       	call   0x401be6
401be3:	c2 08 00             	ret    $0x8
401be6:	56                   	push   %esi
401be7:	57                   	push   %edi
401be8:	8b 7c 24 0c          	mov    0xc(%esp),%edi
401bec:	8b f1                	mov    %ecx,%esi
401bee:	8b cf                	mov    %edi,%ecx
401bf0:	e8 24 09 00 00       	call   0x402519
401bf5:	8b 46 58             	mov    0x58(%esi),%eax
401bf8:	85 c0                	test   %eax,%eax
401bfa:	74 08                	je     0x401c04
401bfc:	57                   	push   %edi
401bfd:	ff 76 5c             	push   0x5c(%esi)
401c00:	ff d0                	call   *%eax
401c02:	59                   	pop    %ecx
401c03:	59                   	pop    %ecx
401c04:	56                   	push   %esi
401c05:	ff 15 14 10 43 00    	call   *0x431014
401c0b:	80 be 88 00 00 00 00 	cmpb   $0x0,0x88(%esi)
401c12:	74 09                	je     0x401c1d
401c14:	56                   	push   %esi
401c15:	ff 15 18 10 43 00    	call   *0x431018
401c1b:	eb 38                	jmp    0x401c55
401c1d:	8d 44 24 0c          	lea    0xc(%esp),%eax
401c21:	50                   	push   %eax
401c22:	8d 4e 18             	lea    0x18(%esi),%ecx
401c25:	e8 ba 02 00 00       	call   0x401ee4
401c2a:	56                   	push   %esi
401c2b:	ff 15 18 10 43 00    	call   *0x431018
401c31:	83 7f 3c 00          	cmpl   $0x0,0x3c(%edi)
401c35:	74 0d                	je     0x401c44
401c37:	ff 77 3c             	push   0x3c(%edi)
401c3a:	ff 15 e8 10 43 00    	call   *0x4310e8
401c40:	83 67 3c 00          	andl   $0x0,0x3c(%edi)
401c44:	8b cf                	mov    %edi,%ecx
401c46:	e8 13 09 00 00       	call   0x40255e
401c4b:	6a 4c                	push   $0x4c
401c4d:	57                   	push   %edi
401c4e:	e8 9d 4d 00 00       	call   0x4069f0
401c53:	59                   	pop    %ecx
401c54:	59                   	pop    %ecx
401c55:	5f                   	pop    %edi
401c56:	5e                   	pop    %esi
401c57:	c2 04 00             	ret    $0x4
401c5a:	55                   	push   %ebp
401c5b:	8b ec                	mov    %esp,%ebp
401c5d:	83 e4 f8             	and    $0xfffffff8,%esp
401c60:	83 ec 1c             	sub    $0x1c,%esp
401c63:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
401c68:	33 c4                	xor    %esp,%eax
401c6a:	89 44 24 18          	mov    %eax,0x18(%esp)
401c6e:	83 64 24 10 00       	andl   $0x0,0x10(%esp)
401c73:	33 c0                	xor    %eax,%eax
401c75:	53                   	push   %ebx
401c76:	56                   	push   %esi
401c77:	8b f1                	mov    %ecx,%esi
401c79:	c7 44 24 1c 07 00 00 	movl   $0x7,0x1c(%esp)
401c80:	00
401c81:	57                   	push   %edi
401c82:	8b 7d 08             	mov    0x8(%ebp),%edi
401c85:	b3 01                	mov    $0x1,%bl
401c87:	66 89 44 24 0c       	mov    %ax,0xc(%esp)
401c8c:	38 46 68             	cmp    %al,0x68(%esi)
401c8f:	74 11                	je     0x401ca2
401c91:	8d 44 24 0c          	lea    0xc(%esp),%eax
401c95:	50                   	push   %eax
401c96:	57                   	push   %edi
401c97:	e8 62 00 00 00       	call   0x401cfe
401c9c:	f6 d8                	neg    %al
401c9e:	1a c0                	sbb    %al,%al
401ca0:	22 d8                	and    %al,%bl
401ca2:	83 7e 50 00          	cmpl   $0x0,0x50(%esi)
401ca6:	74 23                	je     0x401ccb
401ca8:	84 db                	test   %bl,%bl
401caa:	74 1f                	je     0x401ccb
401cac:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
401cb0:	e8 25 07 00 00       	call   0x4023da
401cb5:	33 d2                	xor    %edx,%edx
401cb7:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
401cbb:	84 c0                	test   %al,%al
401cbd:	0f 45 ca             	cmovne %edx,%ecx
401cc0:	51                   	push   %ecx
401cc1:	57                   	push   %edi
401cc2:	ff 76 54             	push   0x54(%esi)
401cc5:	ff 56 50             	call   *0x50(%esi)
401cc8:	83 c4 0c             	add    $0xc,%esp
401ccb:	ff 77 34             	push   0x34(%edi)
401cce:	ff 15 0c 11 43 00    	call   *0x43110c
401cd4:	8b 54 24 20          	mov    0x20(%esp),%edx
401cd8:	83 fa 08             	cmp    $0x8,%edx
401cdb:	72 0d                	jb     0x401cea
401cdd:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
401ce1:	42                   	inc    %edx
401ce2:	6a 02                	push   $0x2
401ce4:	e8 f5 f4 ff ff       	call   0x4011de
401ce9:	59                   	pop    %ecx
401cea:	8b 4c 24 24          	mov    0x24(%esp),%ecx
401cee:	5f                   	pop    %edi
401cef:	5e                   	pop    %esi
401cf0:	5b                   	pop    %ebx
401cf1:	33 cc                	xor    %esp,%ecx
401cf3:	e8 af 7f 00 00       	call   0x409ca7
401cf8:	8b e5                	mov    %ebp,%esp
401cfa:	5d                   	pop    %ebp
401cfb:	c2 04 00             	ret    $0x4
401cfe:	b8 b4 02 04 00       	mov    $0x402b4,%eax
401d03:	e8 b8 83 00 00       	call   0x40a0c0
401d08:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
401d0d:	33 c4                	xor    %esp,%eax
401d0f:	89 84 24 ac 02 04 00 	mov    %eax,0x402ac(%esp)
401d16:	8b 84 24 bc 02 04 00 	mov    0x402bc(%esp),%eax
401d1d:	53                   	push   %ebx
401d1e:	55                   	push   %ebp
401d1f:	8b ac 24 c0 02 04 00 	mov    0x402c0(%esp),%ebp
401d26:	33 db                	xor    %ebx,%ebx
401d28:	56                   	push   %esi
401d29:	8b 35 2c 11 43 00    	mov    0x43112c,%esi
401d2f:	57                   	push   %edi