40b7eb:	66 3b c1             	cmp    %cx,%ax
40b7ee:	0f 85 c3 00 00 00    	jne    0x40b8b7
40b7f4:	53                   	push   %ebx
40b7f5:	51                   	push   %ecx
40b7f6:	8b 4e 04             	mov    0x4(%esi),%ecx
40b7f9:	6a 06                	push   $0x6
40b7fb:	5a                   	pop    %edx
40b7fc:	e8 ea 45 00 00       	call   0x40fdeb
40b801:	3b c3                	cmp    %ebx,%eax
40b803:	0f 85 ae 00 00 00    	jne    0x40b8b7
40b809:	83 3d 48 50 41 00 00 	cmpl   $0x0,0x415048
40b810:	0f 84 a1 00 00 00    	je     0x40b8b7
40b816:	6a 00                	push   $0x0
40b818:	51                   	push   %ecx
40b819:	6a 02                	push   $0x2
40b81b:	e8 a3 76 00 00       	call   0x412ec3
40b820:	e9 92 00 00 00       	jmp    0x40b8b7
40b825:	33 c0                	xor    %eax,%eax
40b827:	66 3b c1             	cmp    %cx,%ax
40b82a:	0f 85 87 00 00 00    	jne    0x40b8b7
40b830:	53                   	push   %ebx
40b831:	51                   	push   %ecx
40b832:	8b 4e 04             	mov    0x4(%esi),%ecx
40b835:	6a 29                	push   $0x29
40b837:	5a                   	pop    %edx
40b838:	e8 ae 45 00 00       	call   0x40fdeb
40b83d:	3b c3                	cmp    %ebx,%eax
40b83f:	75 76                	jne    0x40b8b7
40b841:	83 3d 48 50 41 00 00 	cmpl   $0x0,0x415048
40b848:	74 6d                	je     0x40b8b7
40b84a:	6a 00                	push   $0x0
40b84c:	51                   	push   %ecx
40b84d:	53                   	push   %ebx
40b84e:	eb cb                	jmp    0x40b81b
40b850:	33 c0                	xor    %eax,%eax
40b852:	66 3b c1             	cmp    %cx,%ax
40b855:	75 60                	jne    0x40b8b7
40b857:	53                   	push   %ebx
40b858:	51                   	push   %ecx
40b859:	8b 4e 04             	mov    0x4(%esi),%ecx
40b85c:	6a 1d                	push   $0x1d
40b85e:	5a                   	pop    %edx
40b85f:	e8 87 45 00 00       	call   0x40fdeb
40b864:	3b c3                	cmp    %ebx,%eax
40b866:	75 4f                	jne    0x40b8b7
40b868:	33 ff                	xor    %edi,%edi
40b86a:	39 3d 48 50 41 00    	cmp    %edi,0x415048
40b870:	74 0c                	je     0x40b87e
40b872:	57                   	push   %edi
40b873:	51                   	push   %ecx
40b874:	57                   	push   %edi
40b875:	e8 49 76 00 00       	call   0x412ec3
40b87a:	85 c0                	test   %eax,%eax
40b87c:	79 39                	jns    0x40b8b7
40b87e:	57                   	push   %edi
40b87f:	51                   	push   %ecx
40b880:	8b 4e 04             	mov    0x4(%esi),%ecx
40b883:	6a 45                	push   $0x45
40b885:	5a                   	pop    %edx
40b886:	e8 60 45 00 00       	call   0x40fdeb
40b88b:	eb 2a                	jmp    0x40b8b7
40b88d:	33 c0                	xor    %eax,%eax
40b88f:	66 3b c1             	cmp    %cx,%ax
40b892:	75 23                	jne    0x40b8b7
40b894:	8b ce                	mov    %esi,%ecx
40b896:	e8 d2 00 00 00       	call   0x40b96d
40b89b:	eb 1a                	jmp    0x40b8b7
40b89d:	33 c0                	xor    %eax,%eax
40b89f:	66 3b c1             	cmp    %cx,%ax
40b8a2:	75 13                	jne    0x40b8b7
40b8a4:	e8 90 cc ff ff       	call   0x408539
40b8a9:	eb 0c                	jmp    0x40b8b7
40b8ab:	33 d2                	xor    %edx,%edx
40b8ad:	66 3b d1             	cmp    %cx,%dx
40b8b0:	75 05                	jne    0x40b8b7
40b8b2:	e8 90 cb ff ff       	call   0x408447
40b8b7:	5f                   	pop    %edi
40b8b8:	5e                   	pop    %esi
40b8b9:	8b c3                	mov    %ebx,%eax
40b8bb:	5b                   	pop    %ebx
40b8bc:	5d                   	pop    %ebp
40b8bd:	c2 08 00             	ret    $0x8
40b8c0:	9d                   	popf
40b8c1:	b8 40 00 bb b7       	mov    $0xb7bb0040,%eax
40b8c6:	40                   	inc    %eax
40b8c7:	00 d2                	add    %dl,%dl
40b8c9:	b7 40                	mov    $0x40,%bh
40b8cb:	00 25 b8 40 00 8d    	add    %ah,0x8d0040b8
40b8d1:	b8 40 00 50 b8       	mov    $0xb8500040,%eax
40b8d6:	40                   	inc    %eax
40b8d7:	00 ab b8 40 00 e4    	add    %ch,-0x1bffbf48(%ebx)
40b8dd:	b6 40                	mov    $0x40,%dh
40b8df:	00 89 b7 40 00 e9    	add    %cl,-0x16ffbf49(%ecx)
40b8e5:	b7 40                	mov    $0x40,%bh
40b8e7:	00 64 b7 40          	add    %ah,0x40(%edi,%esi,4)
40b8eb:	00 b7 b8 40 00 00    	add    %dh,0x40b8(%edi)
40b8f1:	0b 0b                	or     (%ebx),%ecx
40b8f3:	01 02                	add    %eax,(%edx)
40b8f5:	03 0b                	add    (%ebx),%ecx
40b8f7:	0b 0b                	or     (%ebx),%ecx
40b8f9:	0b 0b                	or     (%ebx),%ecx
40b8fb:	0b 0b                	or     (%ebx),%ecx
40b8fd:	0b 04 0b             	or     (%ebx,%ecx,1),%eax
40b900:	0b 0b                	or     (%ebx),%ecx
40b902:	0b 0b                	or     (%ebx),%ecx
40b904:	05 0b 0b 0b 06       	add    $0x60b0b0b,%eax
40b909:	0b 07                	or     (%edi),%eax
40b90b:	08 0b                	or     %cl,(%ebx)
40b90d:	0b 0b                	or     (%ebx),%ecx
40b90f:	09 0b                	or     %ecx,(%ebx)
40b911:	0b 0b                	or     (%ebx),%ecx
40b913:	0b 0a                	or     (%edx),%ecx
40b915:	0a cc                	or     %ah,%cl
40b917:	cc                   	int3
40b918:	cc                   	int3
40b919:	cc                   	int3
40b91a:	cc                   	int3
40b91b:	cc                   	int3
40b91c:	cc                   	int3
40b91d:	cc                   	int3
40b91e:	cc                   	int3
40b91f:	cc                   	int3
40b920:	8b ff                	mov    %edi,%edi
40b922:	56                   	push   %esi
40b923:	68 06 04 00 00       	push   $0x406
40b928:	8b f1                	mov    %ecx,%esi
40b92a:	e8 f9 13 00 00       	call   0x40cd28
40b92f:	48                   	dec    %eax
40b930:	f7 d8                	neg    %eax
40b932:	1b c0                	sbb    %eax,%eax
40b934:	40                   	inc    %eax
40b935:	50                   	push   %eax
40b936:	68 04 01 00 00       	push   $0x104
40b93b:	e8 bb 74 00 00       	call   0x412dfb
40b940:	ff 76 0c             	push   0xc(%esi)
40b943:	68 23 01 00 00       	push   $0x123
40b948:	e8 ae 74 00 00       	call   0x412dfb
40b94d:	ff 76 14             	push   0x14(%esi)
40b950:	68 3b 01 00 00       	push   $0x13b
40b955:	e8 a1 74 00 00       	call   0x412dfb
40b95a:	ff 76 10             	push   0x10(%esi)
40b95d:	68 01 01 00 00       	push   $0x101
40b962:	e8 94 74 00 00       	call   0x412dfb
40b967:	33 c0                	xor    %eax,%eax
40b969:	5e                   	pop    %esi
40b96a:	c2 04 00             	ret    $0x4
40b96d:	a1 18 98 41 00       	mov    0x419818,%eax
40b972:	53                   	push   %ebx
40b973:	56                   	push   %esi
40b974:	33 f6                	xor    %esi,%esi
40b976:	8b d9                	mov    %ecx,%ebx
40b978:	46                   	inc    %esi
40b979:	57                   	push   %edi
40b97a:	3d 22 00 10 00       	cmp    $0x100022,%eax
40b97f:	74 12                	je     0x40b993
40b981:	3d 23 00 10 00       	cmp    $0x100023,%eax
40b986:	74 0b                	je     0x40b993
40b988:	3d 24 00 10 00       	cmp    $0x100024,%eax
40b98d:	74 04                	je     0x40b993
40b98f:	8b fe                	mov    %esi,%edi
40b991:	eb 02                	jmp    0x40b995
40b993:	33 ff                	xor    %edi,%edi
40b995:	68 06 04 00 00       	push   $0x406
40b99a:	e8 89 13 00 00       	call   0x40cd28
40b99f:	3b c6                	cmp    %esi,%eax
40b9a1:	74 04                	je     0x40b9a7
40b9a3:	33 ff                	xor    %edi,%edi
40b9a5:	eb 02                	jmp    0x40b9a9
40b9a7:	33 f6                	xor    %esi,%esi
40b9a9:	56                   	push   %esi
40b9aa:	68 0c 04 00 00       	push   $0x40c
40b9af:	8b cb                	mov    %ebx,%ecx
40b9b1:	e8 b6 12 00 00       	call   0x40cc6c
40b9b6:	57                   	push   %edi
40b9b7:	68 f8 03 00 00       	push   $0x3f8
40b9bc:	8b cb                	mov    %ebx,%ecx
40b9be:	e8 a9 12 00 00       	call   0x40cc6c
40b9c3:	33 c0                	xor    %eax,%eax
40b9c5:	8b cb                	mov    %ebx,%ecx
40b9c7:	83 3d 80 93 41 00 02 	cmpl   $0x2,0x419380
40b9ce:	0f 94 c0             	sete   %al
40b9d1:	50                   	push   %eax
40b9d2:	68 10 04 00 00       	push   $0x410
40b9d7:	e8 90 12 00 00       	call   0x40cc6c
40b9dc:	5f                   	pop    %edi
40b9dd:	5e                   	pop    %esi
40b9de:	5b                   	pop    %ebx
40b9df:	c3                   	ret
40b9e0:	e8 88 ff ff ff       	call   0x40b96d
40b9e5:	33 c0                	xor    %eax,%eax
40b9e7:	c2 04 00             	ret    $0x4
40b9ea:	8b ff                	mov    %edi,%edi
40b9ec:	55                   	push   %ebp
40b9ed:	8b ec                	mov    %esp,%ebp
40b9ef:	83 e4 f8             	and    $0xfffffff8,%esp
40b9f2:	83 ec 64             	sub    $0x64,%esp
40b9f5:	53                   	push   %ebx
40b9f6:	56                   	push   %esi
40b9f7:	57                   	push   %edi
40b9f8:	8b f9                	mov    %ecx,%edi
40b9fa:	33 db                	xor    %ebx,%ebx
40b9fc:	68 08 02 00 00       	push   $0x208
40ba01:	89 7c 24 18          	mov    %edi,0x18(%esp)
40ba05:	89 5c 24 14          	mov    %ebx,0x14(%esp)
40ba09:	e8 7e 7b 00 00       	call   0x41358c
40ba0e:	8b f0                	mov    %eax,%esi
40ba10:	59                   	pop    %ecx
40ba11:	85 f6                	test   %esi,%esi
40ba13:	0f 84 21 01 00 00    	je     0x40bb3a
40ba19:	33 c0                	xor    %eax,%eax
40ba1b:	6a 58                	push   $0x58
40ba1d:	66 89 06             	mov    %ax,(%esi)
40ba20:	8d 44 24 1c          	lea    0x1c(%esp),%eax
40ba24:	53                   	push   %ebx
40ba25:	50                   	push   %eax
40ba26:	e8 36 87 00 00       	call   0x414161
40ba2b:	8b 47 04             	mov    0x4(%edi),%eax
40ba2e:	8d 54 24 24          	lea    0x24(%esp),%edx
40ba32:	8b 0d 6c b0 41 00    	mov    0x41b06c,%ecx
40ba38:	83 c4 0c             	add    $0xc,%esp
40ba3b:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40ba3f:	8d 44 24 10          	lea    0x10(%esp),%eax
40ba43:	c7 44 24 18 58 00 00 	movl   $0x58,0x18(%esp)
40ba4a:	00
40ba4b:	c7 44 24 24 0c 3b 40 	movl   $0x403b0c,0x24(%esp)
40ba52:	00
40ba53:	50                   	push   %eax
40ba54:	c7 44 24 50 04 18 30 	movl   $0x301804,0x50(%esp)
40ba5b:	00
40ba5c:	89 74 24 38          	mov    %esi,0x38(%esp)
40ba60:	c7 44 24 3c 04 01 00 	movl   $0x104,0x3c(%esp)
40ba67:	00
40ba68:	c7 44 24 58 38 3b 40 	movl   $0x403b38,0x58(%esp)
40ba6f:	00
40ba70:	e8 54 3e 00 00       	call   0x40f8c9
40ba75:	33 c0                	xor    %eax,%eax
40ba77:	66 3b 06             	cmp    (%esi),%ax
40ba7a:	0f 84 b2 00 00 00    	je     0x40bb32
40ba80:	39 44 24 10          	cmp    %eax,0x10(%esp)
40ba84:	0f 84 a8 00 00 00    	je     0x40bb32
40ba8a:	f7 44 24 4c 00 04 00 	testl  $0x400,0x4c(%esp)
40ba91:	00
40ba92:	0f 85 9a 00 00 00    	jne    0x40bb32
40ba98:	53                   	push   %ebx
40ba99:	68 80 00 00 00       	push   $0x80
40ba9e:	6a 03                	push   $0x3
40baa0:	51                   	push   %ecx
40baa1:	e8 ce c0 ff ff       	call   0x407b74
40baa6:	59                   	pop    %ecx
40baa7:	50                   	push   %eax
40baa8:	6a 01                	push   $0x1
40baaa:	68 00 00 00 80       	push   $0x80000000
40baaf:	ff 74 24 4c          	push   0x4c(%esp)
40bab3:	ff 15 80 b1 41 00    	call   *0x41b180
40bab9:	8b f8                	mov    %eax,%edi
40babb:	83 ff ff             	cmp    $0xffffffff,%edi
40babe:	75 3d                	jne    0x40bafd
40bac0:	53                   	push   %ebx
40bac1:	53                   	push   %ebx
40bac2:	8d 44 24 1c          	lea    0x1c(%esp),%eax
40bac6:	50                   	push   %eax
40bac7:	68 00 04 00 00       	push   $0x400
40bacc:	ff 15 44 b1 41 00    	call   *0x41b144
40bad2:	50                   	push   %eax
40bad3:	53                   	push   %ebx
40bad4:	68 00 13 00 00       	push   $0x1300
40bad9:	ff 15 40 b1 41 00    	call   *0x41b140
40badf:	85 c0                	test   %eax,%eax
40bae1:	74 4f                	je     0x40bb32
40bae3:	6a 40                	push   $0x40
40bae5:	53                   	push   %ebx
40bae6:	ff 74 24 1c          	push   0x1c(%esp)
40baea:	53                   	push   %ebx
40baeb:	ff 15 38 b2 41 00    	call   *0x41b238
40baf1:	ff 74 24 14          	push   0x14(%esp)
40baf5:	ff 15 78 b1 41 00    	call   *0x41b178
40bafb:	eb 35                	jmp    0x40bb32
40bafd:	39 1d 48 50 41 00    	cmp    %ebx,0x415048
40bb03:	74 10                	je     0x40bb15
40bb05:	57                   	push   %edi
40bb06:	51                   	push   %ecx
40bb07:	6a 03                	push   $0x3
40bb09:	e8 b5 73 00 00       	call   0x412ec3
40bb0e:	33 db                	xor    %ebx,%ebx
40bb10:	85 c0                	test   %eax,%eax
40bb12:	0f 99 c3             	setns  %bl
40bb15:	85 db                	test   %ebx,%ebx
40bb17:	75 12                	jne    0x40bb2b
40bb19:	6a 10                	push   $0x10
40bb1b:	51                   	push   %ecx
40bb1c:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
40bb20:	6a 43                	push   $0x43
40bb22:	5a                   	pop    %edx
40bb23:	8b 49 04             	mov    0x4(%ecx),%ecx
40bb26:	e8 c0 42 00 00       	call   0x40fdeb
40bb2b:	57                   	push   %edi
40bb2c:	ff 15 54 b1 41 00    	call   *0x41b154
40bb32:	56                   	push   %esi
40bb33:	ff 15 24 b3 41 00    	call   *0x41b324
40bb39:	59                   	pop    %ecx
40bb3a:	5f                   	pop    %edi
40bb3b:	5e                   	pop    %esi
40bb3c:	5b                   	pop    %ebx
40bb3d:	8b e5                	mov    %ebp,%esp
40bb3f:	5d                   	pop    %ebp
40bb40:	c3                   	ret
40bb41:	8b ff                	mov    %edi,%edi
40bb43:	55                   	push   %ebp
40bb44:	8b ec                	mov    %esp,%ebp
40bb46:	83 e4 f8             	and    $0xfffffff8,%esp
40bb49:	83 ec 64             	sub    $0x64,%esp
40bb4c:	53                   	push   %ebx
40bb4d:	56                   	push   %esi
40bb4e:	57                   	push   %edi
40bb4f:	8b f9                	mov    %ecx,%edi
40bb51:	33 db                	xor    %ebx,%ebx
40bb53:	68 08 02 00 00       	push   $0x208
40bb58:	89 7c 24 18          	mov    %edi,0x18(%esp)
40bb5c:	89 5c 24 14          	mov    %ebx,0x14(%esp)
40bb60:	e8 27 7a 00 00       	call   0x41358c
40bb65:	8b f0                	mov    %eax,%esi
40bb67:	59                   	pop    %ecx
40bb68:	85 f6                	test   %esi,%esi
40bb6a:	0f 84 d5 00 00 00    	je     0x40bc45
40bb70:	33 c0                	xor    %eax,%eax
40bb72:	6a 58                	push   $0x58
40bb74:	66 89 06             	mov    %ax,(%esi)
40bb77:	8d 44 24 1c          	lea    0x1c(%esp),%eax
40bb7b:	53                   	push   %ebx
40bb7c:	50                   	push   %eax
40bb7d:	e8 df 85 00 00       	call   0x414161
40bb82:	8b 47 04             	mov    0x4(%edi),%eax
40bb85:	8d 54 24 24          	lea    0x24(%esp),%edx
40bb89:	8b 0d 70 b0 41 00    	mov    0x41b070,%ecx
40bb8f:	83 c4 0c             	add    $0xc,%esp
40bb92:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40bb96:	8d 44 24 10          	lea    0x10(%esp),%eax
40bb9a:	c7 44 24 18 58 00 00 	movl   $0x58,0x18(%esp)
40bba1:	00
40bba2:	c7 44 24 24 0c 3b 40 	movl   $0x403b0c,0x24(%esp)
40bba9:	00
40bbaa:	50                   	push   %eax
40bbab:	c7 44 24 50 06 08 30 	movl   $0x300806,0x50(%esp)
40bbb2:	00
40bbb3:	89 74 24 38          	mov    %esi,0x38(%esp)
40bbb7:	c7 44 24 3c 04 01 00 	movl   $0x104,0x3c(%esp)
40bbbe:	00
40bbbf:	c7 44 24 58 38 3b 40 	movl   $0x403b38,0x58(%esp)
40bbc6:	00
40bbc7:	e8 fd 3c 00 00       	call   0x40f8c9