4056c4:	5e                   	pop    %esi
4056c5:	8a c3                	mov    %bl,%al
4056c7:	5b                   	pop    %ebx
4056c8:	8b e5                	mov    %ebp,%esp
4056ca:	5d                   	pop    %ebp
4056cb:	c2 08 00             	ret    $0x8
4056ce:	32 db                	xor    %bl,%bl
4056d0:	eb ea                	jmp    0x4056bc
4056d2:	55                   	push   %ebp
4056d3:	8b ec                	mov    %esp,%ebp
4056d5:	8b 41 2c             	mov    0x2c(%ecx),%eax
4056d8:	83 f8 05             	cmp    $0x5,%eax
4056db:	74 25                	je     0x405702
4056dd:	83 f8 06             	cmp    $0x6,%eax
4056e0:	74 20                	je     0x405702
4056e2:	83 f8 07             	cmp    $0x7,%eax
4056e5:	74 1b                	je     0x405702
4056e7:	83 f8 08             	cmp    $0x8,%eax
4056ea:	74 16                	je     0x405702
4056ec:	83 f8 03             	cmp    $0x3,%eax
4056ef:	74 05                	je     0x4056f6
4056f1:	83 f8 04             	cmp    $0x4,%eax
4056f4:	75 06                	jne    0x4056fc
4056f6:	5d                   	pop    %ebp
4056f7:	e9 8e ff ff ff       	jmp    0x40568a
4056fc:	5d                   	pop    %ebp
4056fd:	e9 a6 de 05 00       	jmp    0x4635a8
405702:	5d                   	pop    %ebp
405703:	e9 81 dd 05 00       	jmp    0x463489
405708:	8b 41 2c             	mov    0x2c(%ecx),%eax
40570b:	83 f8 08             	cmp    $0x8,%eax
40570e:	77 33                	ja     0x405743
405710:	ff 24 85 4c 57 40 00 	jmp    *0x40574c(,%eax,4)
405717:	b8 00 01 00 00       	mov    $0x100,%eax
40571c:	c3                   	ret
40571d:	6a 20                	push   $0x20
40571f:	e9 72 87 03 00       	jmp    0x43de96
405724:	b8 00 04 00 00       	mov    $0x400,%eax
405729:	c3                   	ret
40572a:	6a 40                	push   $0x40
40572c:	e9 65 87 03 00       	jmp    0x43de96
405731:	b8 00 08 00 00       	mov    $0x800,%eax
405736:	c3                   	ret
405737:	b8 80 00 00 00       	mov    $0x80,%eax
40573c:	c3                   	ret
40573d:	b8 00 02 00 00       	mov    $0x200,%eax
405742:	c3                   	ret
405743:	6a 10                	push   $0x10
405745:	e9 4c 87 03 00       	jmp    0x43de96
40574a:	8b ff                	mov    %edi,%edi
40574c:	43                   	inc    %ebx
40574d:	57                   	push   %edi
40574e:	40                   	inc    %eax
40574f:	00 3d 57 40 00 43    	add    %bh,0x43004057
405755:	57                   	push   %edi
405756:	40                   	inc    %eax
405757:	00 37                	add    %dh,(%edi)
405759:	57                   	push   %edi
40575a:	40                   	inc    %eax
40575b:	00 17                	add    %dl,(%edi)
40575d:	57                   	push   %edi
40575e:	40                   	inc    %eax
40575f:	00 1d 57 40 00 24    	add    %bl,0x24004057
405765:	57                   	push   %edi
405766:	40                   	inc    %eax
405767:	00 2a                	add    %ch,(%edx)
405769:	57                   	push   %edi
40576a:	40                   	inc    %eax
40576b:	00 31                	add    %dh,(%ecx)
40576d:	57                   	push   %edi
40576e:	40                   	inc    %eax
40576f:	00 55 8b             	add    %dl,-0x75(%ebp)
405772:	ec                   	in     (%dx),%al
405773:	83 e4 f8             	and    $0xfffffff8,%esp
405776:	83 ec 24             	sub    $0x24,%esp
405779:	53                   	push   %ebx
40577a:	56                   	push   %esi
40577b:	8b f1                	mov    %ecx,%esi
40577d:	57                   	push   %edi
40577e:	f7 46 28 00 80 00 00 	testl  $0x8000,0x28(%esi)
405785:	0f 84 43 88 03 00    	je     0x43dfce
40578b:	f6 46 28 10          	testb  $0x10,0x28(%esi)
40578f:	0f 85 e4 00 00 00    	jne    0x405879
405795:	8b 46 10             	mov    0x10(%esi),%eax
405798:	33 db                	xor    %ebx,%ebx
40579a:	53                   	push   %ebx
40579b:	53                   	push   %ebx
40579c:	89 44 24 18          	mov    %eax,0x18(%esp)
4057a0:	8b 46 14             	mov    0x14(%esi),%eax
4057a3:	53                   	push   %ebx
4057a4:	89 44 24 18          	mov    %eax,0x18(%esp)
4057a8:	e8 a1 04 00 00       	call   0x405c4e
4057ad:	53                   	push   %ebx
4057ae:	8d 4c 24 18          	lea    0x18(%esp),%ecx
4057b2:	e8 d7 fb ff ff       	call   0x40538e
4057b7:	f7 46 28 00 40 00 00 	testl  $0x4000,0x28(%esi)
4057be:	0f 85 19 88 03 00    	jne    0x43dfdd
4057c4:	bb 00 00 01 00       	mov    $0x10000,%ebx
4057c9:	53                   	push   %ebx
4057ca:	e8 27 b8 01 00       	call   0x420ff6
4057cf:	59                   	pop    %ecx
4057d0:	50                   	push   %eax
4057d1:	8d 4c 24 20          	lea    0x20(%esp),%ecx
4057d5:	e8 b4 fb ff ff       	call   0x40538e
4057da:	8d 4c 24 14          	lea    0x14(%esp),%ecx
4057de:	e8 8e fb ff ff       	call   0x405371
4057e3:	8b 44 24 20          	mov    0x20(%esp),%eax
4057e7:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
4057eb:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
4057ef:	89 44 24 18          	mov    %eax,0x18(%esp)
4057f3:	89 7c 24 14          	mov    %edi,0x14(%esp)
4057f7:	ff 00                	incl   (%eax)
4057f9:	e8 73 fb ff ff       	call   0x405371
4057fe:	53                   	push   %ebx
4057ff:	57                   	push   %edi
405800:	8b ce                	mov    %esi,%ecx
405802:	e8 19 05 00 00       	call   0x405d20
405807:	6a 00                	push   $0x0
405809:	ff 74 24 10          	push   0x10(%esp)
40580d:	8b ce                	mov    %esi,%ecx
40580f:	8b d8                	mov    %eax,%ebx
405811:	ff 74 24 18          	push   0x18(%esp)
405815:	e8 34 04 00 00       	call   0x405c4e
40581a:	85 db                	test   %ebx,%ebx
40581c:	74 62                	je     0x405880
40581e:	53                   	push   %ebx
40581f:	57                   	push   %edi
405820:	c6 44 24 2c 01       	movb   $0x1,0x2c(%esp)
405825:	c7 44 24 30 46 00 00 	movl   $0x46,0x30(%esp)
40582c:	00
40582d:	c7 44 24 34 0a 00 00 	movl   $0xa,0x34(%esp)
405834:	00
405835:	e8 d0 fa ff ff       	call   0x40530a
40583a:	85 c0                	test   %eax,%eax
40583c:	75 4a                	jne    0x405888
40583e:	f7 46 28 f0 0f 00 00 	testl  $0xff0,0x28(%esi)
405845:	0f 85 a0 87 03 00    	jne    0x43dfeb
40584b:	53                   	push   %ebx
40584c:	57                   	push   %edi
40584d:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
405851:	e8 41 f8 ff ff       	call   0x405097
405856:	89 46 2c             	mov    %eax,0x2c(%esi)
405859:	83 f8 02             	cmp    $0x2,%eax
40585c:	75 07                	jne    0x405865
40585e:	c7 46 2c 04 00 00 00 	movl   $0x4,0x2c(%esi)
405865:	8b 4e 2c             	mov    0x2c(%esi),%ecx
405868:	e8 e4 fa ff ff       	call   0x405351
40586d:	89 46 30             	mov    %eax,0x30(%esi)
405870:	8d 4c 24 14          	lea    0x14(%esp),%ecx
405874:	e8 f8 fa ff ff       	call   0x405371
405879:	5f                   	pop    %edi
40587a:	5e                   	pop    %esi
40587b:	5b                   	pop    %ebx
40587c:	8b e5                	mov    %ebp,%esp
40587e:	5d                   	pop    %ebp
40587f:	c3                   	ret
405880:	f6 46 28 01          	testb  $0x1,0x28(%esi)
405884:	75 ea                	jne    0x405870
405886:	eb 96                	jmp    0x40581e
405888:	89 46 2c             	mov    %eax,0x2c(%esi)
40588b:	eb d8                	jmp    0x405865
40588d:	8b d1                	mov    %ecx,%edx
40588f:	8b 42 28             	mov    0x28(%edx),%eax
405892:	a8 10                	test   $0x10,%al
405894:	75 34                	jne    0x4058ca
405896:	a9 00 02 00 00       	test   $0x200,%eax
40589b:	75 33                	jne    0x4058d0
40589d:	a8 20                	test   $0x20,%al
40589f:	75 38                	jne    0x4058d9
4058a1:	a9 00 04 00 00       	test   $0x400,%eax
4058a6:	75 3a                	jne    0x4058e2
4058a8:	a8 40                	test   $0x40,%al
4058aa:	75 3f                	jne    0x4058eb
4058ac:	a9 00 08 00 00       	test   $0x800,%eax
4058b1:	75 41                	jne    0x4058f4
4058b3:	84 c0                	test   %al,%al
4058b5:	78 46                	js     0x4058fd
4058b7:	c7 42 2c 04 00 00 00 	movl   $0x4,0x2c(%edx)
4058be:	8b 4a 2c             	mov    0x2c(%edx),%ecx
4058c1:	e8 8b fa ff ff       	call   0x405351
4058c6:	89 42 30             	mov    %eax,0x30(%edx)
4058c9:	c3                   	ret
4058ca:	83 62 2c 00          	andl   $0x0,0x2c(%edx)
4058ce:	eb ee                	jmp    0x4058be
4058d0:	c7 42 2c 01 00 00 00 	movl   $0x1,0x2c(%edx)
4058d7:	eb e5                	jmp    0x4058be
4058d9:	c7 42 2c 05 00 00 00 	movl   $0x5,0x2c(%edx)
4058e0:	eb dc                	jmp    0x4058be
4058e2:	c7 42 2c 06 00 00 00 	movl   $0x6,0x2c(%edx)
4058e9:	eb d3                	jmp    0x4058be
4058eb:	c7 42 2c 07 00 00 00 	movl   $0x7,0x2c(%edx)
4058f2:	eb ca                	jmp    0x4058be
4058f4:	c7 42 2c 08 00 00 00 	movl   $0x8,0x2c(%edx)
4058fb:	eb c1                	jmp    0x4058be
4058fd:	c7 42 2c 03 00 00 00 	movl   $0x3,0x2c(%edx)
405904:	eb b8                	jmp    0x4058be
405906:	56                   	push   %esi
405907:	8b f1                	mov    %ecx,%esi
405909:	68 00 00 01 00       	push   $0x10000
40590e:	83 26 00             	andl   $0x0,(%esi)
405911:	e8 e0 b6 01 00       	call   0x420ff6
405916:	59                   	pop    %ecx
405917:	8b ce                	mov    %esi,%ecx
405919:	89 46 04             	mov    %eax,0x4(%esi)
40591c:	e8 ae 04 00 00       	call   0x405dcf
405921:	8d 4e 18             	lea    0x18(%esi),%ecx
405924:	e8 9e 1e 00 00       	call   0x4077c7
405929:	8b ce                	mov    %esi,%ecx
40592b:	e8 9f 04 00 00       	call   0x405dcf
405930:	8b c6                	mov    %esi,%eax
405932:	5e                   	pop    %esi
405933:	c3                   	ret
405934:	56                   	push   %esi
405935:	8b f1                	mov    %ecx,%esi
405937:	e8 93 04 00 00       	call   0x405dcf
40593c:	8d 4e 18             	lea    0x18(%esi),%ecx
40593f:	e8 20 01 00 00       	call   0x405a64
405944:	8b ce                	mov    %esi,%ecx
405946:	e8 84 04 00 00       	call   0x405dcf
40594b:	ff 76 04             	push   0x4(%esi)
40594e:	e8 19 b7 01 00       	call   0x42106c
405953:	59                   	pop    %ecx
405954:	5e                   	pop    %esi
405955:	c3                   	ret
405956:	55                   	push   %ebp
405957:	8b ec                	mov    %esp,%ebp
405959:	51                   	push   %ecx
40595a:	56                   	push   %esi
40595b:	8b f1                	mov    %ecx,%esi
40595d:	e8 6d 04 00 00       	call   0x405dcf
405962:	8b 45 0c             	mov    0xc(%ebp),%eax
405965:	89 46 28             	mov    %eax,0x28(%esi)
405968:	a8 03                	test   $0x3,%al
40596a:	75 08                	jne    0x405974
40596c:	0d 00 80 00 00       	or     $0x8000,%eax
405971:	89 46 28             	mov    %eax,0x28(%esi)
405974:	ff 76 28             	push   0x28(%esi)
405977:	8b ce                	mov    %esi,%ecx
405979:	ff 75 08             	push   0x8(%ebp)
40597c:	e8 78 04 00 00       	call   0x405df9
405981:	84 c0                	test   %al,%al
405983:	74 27                	je     0x4059ac
405985:	8b ce                	mov    %esi,%ecx
405987:	e8 01 ff ff ff       	call   0x40588d
40598c:	8b ce                	mov    %esi,%ecx
40598e:	e8 dd fd ff ff       	call   0x405770
405993:	8b ce                	mov    %esi,%ecx
405995:	e8 41 fa ff ff       	call   0x4053db
40599a:	f6 46 28 03          	testb  $0x3,0x28(%esi)
40599e:	0f 85 74 86 03 00    	jne    0x43e018
4059a4:	b0 01                	mov    $0x1,%al
4059a6:	5e                   	pop    %esi
4059a7:	59                   	pop    %ecx
4059a8:	5d                   	pop    %ebp
4059a9:	c2 08 00             	ret    $0x8
4059ac:	32 c0                	xor    %al,%al
4059ae:	eb f6                	jmp    0x4059a6
4059b0:	55                   	push   %ebp
4059b1:	8b ec                	mov    %esp,%ebp
4059b3:	56                   	push   %esi
4059b4:	8b 75 0c             	mov    0xc(%ebp),%esi
4059b7:	ff 36                	push   (%esi)
4059b9:	ff 75 08             	push   0x8(%ebp)
4059bc:	e8 5f 03 00 00       	call   0x405d20
4059c1:	85 c0                	test   %eax,%eax
4059c3:	89 06                	mov    %eax,(%esi)
4059c5:	5e                   	pop    %esi
4059c6:	0f 95 c0             	setne  %al
4059c9:	5d                   	pop    %ebp
4059ca:	c2 08 00             	ret    $0x8
4059cd:	55                   	push   %ebp
4059ce:	8b ec                	mov    %esp,%ebp
4059d0:	51                   	push   %ecx
4059d1:	53                   	push   %ebx
4059d2:	8b 5d 08             	mov    0x8(%ebp),%ebx
4059d5:	33 c0                	xor    %eax,%eax
4059d7:	56                   	push   %esi
4059d8:	8b f1                	mov    %ecx,%esi
4059da:	57                   	push   %edi
4059db:	66 89 03             	mov    %ax,(%ebx)
4059de:	8d 7e 18             	lea    0x18(%esi),%edi
4059e1:	8b cf                	mov    %edi,%ecx
4059e3:	e8 04 25 00 00       	call   0x407eec
4059e8:	57                   	push   %edi
4059e9:	8b ce                	mov    %esi,%ecx
4059eb:	e8 fc fb ff ff       	call   0x4055ec
4059f0:	84 c0                	test   %al,%al
4059f2:	74 22                	je     0x405a16
4059f4:	6a ff                	push   $0xffffffff
4059f6:	68 fe 0f 00 00       	push   $0xffe
4059fb:	8b cf                	mov    %edi,%ecx
4059fd:	e8 8a 24 00 00       	call   0x407e8c
405a02:	ff 37                	push   (%edi)
405a04:	53                   	push   %ebx
405a05:	e8 f2 d5 01 00       	call   0x422ffc
405a0a:	59                   	pop    %ecx
405a0b:	59                   	pop    %ecx
405a0c:	b0 01                	mov    $0x1,%al
405a0e:	5f                   	pop    %edi
405a0f:	5e                   	pop    %esi
405a10:	5b                   	pop    %ebx
405a11:	59                   	pop    %ecx
405a12:	5d                   	pop    %ebp
405a13:	c2 08 00             	ret    $0x8
405a16:	32 c0                	xor    %al,%al
405a18:	eb f4                	jmp    0x405a0e
405a1a:	56                   	push   %esi
405a1b:	8b f1                	mov    %ecx,%esi
405a1d:	e8 12 ff ff ff       	call   0x405934
405a22:	56                   	push   %esi
405a23:	e8 44 b6 01 00       	call   0x42106c
405a28:	59                   	pop    %ecx
405a29:	8b c6                	mov    %esi,%eax
405a2b:	5e                   	pop    %esi
405a2c:	c2 04 00             	ret    $0x4
405a2f:	56                   	push   %esi
405a30:	8b f1                	mov    %ecx,%esi
405a32:	8b 4e 0c             	mov    0xc(%esi),%ecx
405a35:	8b 01                	mov    (%ecx),%eax
405a37:	83 f8 01             	cmp    $0x1,%eax
405a3a:	0f 8f 25 86 03 00    	jg     0x43e065
405a40:	8b 06                	mov    (%esi),%eax
405a42:	83 66 04 00          	andl   $0x0,0x4(%esi)
405a46:	5e                   	pop    %esi
405a47:	c6 00 00             	movb   $0x0,(%eax)
405a4a:	c3                   	ret
405a4b:	55                   	push   %ebp
405a4c:	8b ec                	mov    %esp,%ebp
405a4e:	8b 45 08             	mov    0x8(%ebp),%eax
405a51:	85 c0                	test   %eax,%eax
405a53:	74 0a                	je     0x405a5f
405a55:	83 c0 0f             	add    $0xf,%eax
405a58:	83 e0 f0             	and    $0xfffffff0,%eax
405a5b:	5d                   	pop    %ebp
405a5c:	c2 04 00             	ret    $0x4
405a5f:	6a 10                	push   $0x10
405a61:	58                   	pop    %eax
405a62:	eb f7                	jmp    0x405a5b
405a64:	56                   	push   %esi
405a65:	8b f1                	mov    %ecx,%esi
405a67:	8b 46 0c             	mov    0xc(%esi),%eax
405a6a:	ff 08                	decl   (%eax)
405a6c:	8b 46 0c             	mov    0xc(%esi),%eax
405a6f:	83 38 00             	cmpl   $0x0,(%eax)
405a72:	75 11                	jne    0x405a85
405a74:	ff 36                	push   (%esi)
405a76:	e8 f1 b5 01 00       	call   0x42106c
405a7b:	ff 76 0c             	push   0xc(%esi)
405a7e:	e8 e9 b5 01 00       	call   0x42106c
405a83:	59                   	pop    %ecx