40ba39:	e8 36 81 ff ff       	call   0x403b74
40ba3e:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40ba45:	83 c4 0c             	add    $0xc,%esp
40ba48:	8b c7                	mov    %edi,%eax
40ba4a:	5f                   	pop    %edi
40ba4b:	5e                   	pop    %esi
40ba4c:	5b                   	pop    %ebx
40ba4d:	c3                   	ret
40ba4e:	8b c0                	mov    %eax,%eax
40ba50:	55                   	push   %ebp
40ba51:	8b ec                	mov    %esp,%ebp
40ba53:	6a 00                	push   $0x0
40ba55:	53                   	push   %ebx
40ba56:	56                   	push   %esi
40ba57:	57                   	push   %edi
40ba58:	84 d2                	test   %dl,%dl
40ba5a:	74 08                	je     0x40ba64
40ba5c:	83 c4 f0             	add    $0xfffffff0,%esp
40ba5f:	e8 b8 80 ff ff       	call   0x403b1c
40ba64:	8b f1                	mov    %ecx,%esi
40ba66:	8b da                	mov    %edx,%ebx
40ba68:	8b f8                	mov    %eax,%edi
40ba6a:	33 c0                	xor    %eax,%eax
40ba6c:	55                   	push   %ebp
40ba6d:	68 aa ba 40 00       	push   $0x40baaa
40ba72:	64 ff 30             	push   %fs:(%eax)
40ba75:	64 89 20             	mov    %esp,%fs:(%eax)
40ba78:	8d 45 fc             	lea    -0x4(%ebp),%eax
40ba7b:	50                   	push   %eax
40ba7c:	8b 55 0c             	mov    0xc(%ebp),%edx
40ba7f:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ba82:	8b c6                	mov    %esi,%eax
40ba84:	e8 bb d6 ff ff       	call   0x409144
40ba89:	8b 55 fc             	mov    -0x4(%ebp),%edx
40ba8c:	8d 47 04             	lea    0x4(%edi),%eax
40ba8f:	e8 30 8b ff ff       	call   0x4045c4
40ba94:	33 c0                	xor    %eax,%eax
40ba96:	5a                   	pop    %edx
40ba97:	59                   	pop    %ecx
40ba98:	59                   	pop    %ecx
40ba99:	64 89 10             	mov    %edx,%fs:(%eax)
40ba9c:	68 b1 ba 40 00       	push   $0x40bab1
40baa1:	8d 45 fc             	lea    -0x4(%ebp),%eax
40baa4:	e8 c7 8a ff ff       	call   0x404570
40baa9:	c3                   	ret
40baaa:	e9 9d 84 ff ff       	jmp    0x403f4c
40baaf:	eb f0                	jmp    0x40baa1
40bab1:	8b c7                	mov    %edi,%eax
40bab3:	84 db                	test   %bl,%bl
40bab5:	74 0f                	je     0x40bac6
40bab7:	e8 b8 80 ff ff       	call   0x403b74
40babc:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40bac3:	83 c4 0c             	add    $0xc,%esp
40bac6:	8b c7                	mov    %edi,%eax
40bac8:	5f                   	pop    %edi
40bac9:	5e                   	pop    %esi
40baca:	5b                   	pop    %ebx
40bacb:	59                   	pop    %ecx
40bacc:	5d                   	pop    %ebp
40bacd:	c2 08 00             	ret    $0x8
40bad0:	53                   	push   %ebx
40bad1:	56                   	push   %esi
40bad2:	57                   	push   %edi
40bad3:	84 d2                	test   %dl,%dl
40bad5:	74 08                	je     0x40badf
40bad7:	83 c4 f0             	add    $0xfffffff0,%esp
40bada:	e8 3d 80 ff ff       	call   0x403b1c
40badf:	8b f1                	mov    %ecx,%esi
40bae1:	8b da                	mov    %edx,%ebx
40bae3:	8b f8                	mov    %eax,%edi
40bae5:	8d 57 04             	lea    0x4(%edi),%edx
40bae8:	8b c6                	mov    %esi,%eax
40baea:	e8 4d a6 ff ff       	call   0x40613c
40baef:	8b c7                	mov    %edi,%eax
40baf1:	84 db                	test   %bl,%bl
40baf3:	74 0f                	je     0x40bb04
40baf5:	e8 7a 80 ff ff       	call   0x403b74
40bafa:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40bb01:	83 c4 0c             	add    $0xc,%esp
40bb04:	8b c7                	mov    %edi,%eax
40bb06:	5f                   	pop    %edi
40bb07:	5e                   	pop    %esi
40bb08:	5b                   	pop    %ebx
40bb09:	c3                   	ret
40bb0a:	8b c0                	mov    %eax,%eax
40bb0c:	55                   	push   %ebp
40bb0d:	8b ec                	mov    %esp,%ebp
40bb0f:	6a 00                	push   $0x0
40bb11:	6a 00                	push   $0x0
40bb13:	53                   	push   %ebx
40bb14:	56                   	push   %esi
40bb15:	57                   	push   %edi
40bb16:	84 d2                	test   %dl,%dl
40bb18:	74 08                	je     0x40bb22
40bb1a:	83 c4 f0             	add    $0xfffffff0,%esp
40bb1d:	e8 fa 7f ff ff       	call   0x403b1c
40bb22:	8b f1                	mov    %ecx,%esi
40bb24:	8b da                	mov    %edx,%ebx
40bb26:	8b f8                	mov    %eax,%edi
40bb28:	33 c0                	xor    %eax,%eax
40bb2a:	55                   	push   %ebp
40bb2b:	68 78 bb 40 00       	push   $0x40bb78
40bb30:	64 ff 30             	push   %fs:(%eax)
40bb33:	64 89 20             	mov    %esp,%fs:(%eax)
40bb36:	8d 45 fc             	lea    -0x4(%ebp),%eax
40bb39:	50                   	push   %eax
40bb3a:	8d 55 f8             	lea    -0x8(%ebp),%edx
40bb3d:	8b c6                	mov    %esi,%eax
40bb3f:	e8 f8 a5 ff ff       	call   0x40613c
40bb44:	8b 45 f8             	mov    -0x8(%ebp),%eax
40bb47:	8b 55 0c             	mov    0xc(%ebp),%edx
40bb4a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40bb4d:	e8 f2 d5 ff ff       	call   0x409144
40bb52:	8b 55 fc             	mov    -0x4(%ebp),%edx
40bb55:	8d 47 04             	lea    0x4(%edi),%eax
40bb58:	e8 67 8a ff ff       	call   0x4045c4
40bb5d:	33 c0                	xor    %eax,%eax
40bb5f:	5a                   	pop    %edx
40bb60:	59                   	pop    %ecx
40bb61:	59                   	pop    %ecx
40bb62:	64 89 10             	mov    %edx,%fs:(%eax)
40bb65:	68 7f bb 40 00       	push   $0x40bb7f
40bb6a:	8d 45 f8             	lea    -0x8(%ebp),%eax
40bb6d:	ba 02 00 00 00       	mov    $0x2,%edx
40bb72:	e8 1d 8a ff ff       	call   0x404594
40bb77:	c3                   	ret
40bb78:	e9 cf 83 ff ff       	jmp    0x403f4c
40bb7d:	eb eb                	jmp    0x40bb6a
40bb7f:	8b c7                	mov    %edi,%eax
40bb81:	84 db                	test   %bl,%bl
40bb83:	74 0f                	je     0x40bb94
40bb85:	e8 ea 7f ff ff       	call   0x403b74
40bb8a:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40bb91:	83 c4 0c             	add    $0xc,%esp
40bb94:	8b c7                	mov    %edi,%eax
40bb96:	5f                   	pop    %edi
40bb97:	5e                   	pop    %esi
40bb98:	5b                   	pop    %ebx
40bb99:	59                   	pop    %ecx
40bb9a:	59                   	pop    %ecx
40bb9b:	5d                   	pop    %ebp
40bb9c:	c2 08 00             	ret    $0x8
40bb9f:	90                   	nop
40bba0:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
40bba4:	74 05                	je     0x40bbab
40bba6:	e8 05 7c ff ff       	call   0x4037b0
40bbab:	c3                   	ret
40bbac:	b0 bb                	mov    $0xbb,%al
40bbae:	40                   	inc    %eax
40bbaf:	00 0e                	add    %cl,(%esi)
40bbb1:	09 54 45 72          	or     %edx,0x72(%ebp,%eax,2)
40bbb5:	72 6f                	jb     0x40bc26
40bbb7:	72 52                	jb     0x40bc0b
40bbb9:	65 63 08             	arpl   %ecx,%gs:(%eax)
40bbbc:	00 00                	add    %al,(%eax)
40bbbe:	00 01                	add    %al,(%ecx)
40bbc0:	00 00                	add    %al,(%eax)
40bbc2:	00 94 10 40 00 04 00 	add    %dl,0x40040(%eax,%edx,1)
40bbc9:	00 00                	add    %al,(%eax)
40bbcb:	90                   	nop
40bbcc:	53                   	push   %ebx
40bbcd:	56                   	push   %esi
40bbce:	83 c4 f8             	add    $0xfffffff8,%esp
40bbd1:	33 db                	xor    %ebx,%ebx
40bbd3:	e8 60 70 ff ff       	call   0x402c38
40bbd8:	8b f0                	mov    %eax,%esi
40bbda:	eb 01                	jmp    0x40bbdd
40bbdc:	43                   	inc    %ebx
40bbdd:	83 fb 06             	cmp    $0x6,%ebx
40bbe0:	7f 09                	jg     0x40bbeb
40bbe2:	3b 34 dd 4c 52 45 00 	cmp    0x45524c(,%ebx,8),%esi
40bbe9:	75 f1                	jne    0x40bbdc
40bbeb:	83 fb 06             	cmp    $0x6,%ebx
40bbee:	7f 15                	jg     0x40bc05
40bbf0:	8b 0c dd 50 52 45 00 	mov    0x455250(,%ebx,8),%ecx
40bbf7:	b2 01                	mov    $0x1,%dl
40bbf9:	a1 50 76 40 00       	mov    0x407650,%eax
40bbfe:	e8 11 fe ff ff       	call   0x40ba14
40bc03:	eb 1d                	jmp    0x40bc22
40bc05:	89 34 24             	mov    %esi,(%esp)
40bc08:	c6 44 24 04 00       	movb   $0x0,0x4(%esp)
40bc0d:	54                   	push   %esp
40bc0e:	6a 00                	push   $0x0
40bc10:	8b 0d 44 0a 46 00    	mov    0x460a44,%ecx
40bc16:	b2 01                	mov    $0x1,%dl
40bc18:	a1 50 76 40 00       	mov    0x407650,%eax
40bc1d:	e8 ea fe ff ff       	call   0x40bb0c
40bc22:	89 70 0c             	mov    %esi,0xc(%eax)
40bc25:	59                   	pop    %ecx
40bc26:	5a                   	pop    %edx
40bc27:	5e                   	pop    %esi
40bc28:	5b                   	pop    %ebx
40bc29:	c3                   	ret
40bc2a:	8b c0                	mov    %eax,%eax
40bc2c:	30 bc 40 00 0e 0a 54 	xor    %bh,0x540a0e00(%eax,%eax,2)
40bc33:	45                   	inc    %ebp
40bc34:	78 63                	js     0x40bc99
40bc36:	65 70 74             	gs jo  0x40bcad
40bc39:	52                   	push   %edx
40bc3a:	65 63 08             	arpl   %ecx,%gs:(%eax)
40bc3d:	00 00                	add    %al,(%eax)
40bc3f:	00 01                	add    %al,(%ecx)
40bc41:	00 00                	add    %al,(%eax)
40bc43:	00 94 10 40 00 04 00 	add    %dl,0x40040(%eax,%edx,1)
40bc4a:	00 00                	add    %al,(%eax)
40bc4c:	53                   	push   %ebx
40bc4d:	8b da                	mov    %edx,%ebx
40bc4f:	8b d0                	mov    %eax,%edx
40bc51:	fe ca                	dec    %dl
40bc53:	74 0c                	je     0x40bc61
40bc55:	fe ca                	dec    %dl
40bc57:	74 10                	je     0x40bc69
40bc59:	4a                   	dec    %edx
40bc5a:	80 ea 16             	sub    $0x16,%dl
40bc5d:	72 12                	jb     0x40bc71
40bc5f:	eb 2c                	jmp    0x40bc8d
40bc61:	8b 15 98 17 46 00    	mov    0x461798,%edx
40bc67:	eb 2b                	jmp    0x40bc94
40bc69:	8b 15 9c 17 46 00    	mov    0x46179c,%edx
40bc6f:	eb 23                	jmp    0x40bc94
40bc71:	25 ff 00 00 00       	and    $0xff,%eax
40bc76:	8d 04 c5 6c 52 45 00 	lea    0x45526c(,%eax,8),%eax
40bc7d:	8b 48 04             	mov    0x4(%eax),%ecx
40bc80:	8b 00                	mov    (%eax),%eax
40bc82:	b2 01                	mov    $0x1,%dl
40bc84:	e8 8b fd ff ff       	call   0x40ba14
40bc89:	8b d0                	mov    %eax,%edx
40bc8b:	eb 07                	jmp    0x40bc94
40bc8d:	e8 3a ff ff ff       	call   0x40bbcc
40bc92:	8b d0                	mov    %eax,%edx
40bc94:	53                   	push   %ebx
40bc95:	8b c2                	mov    %edx,%eax
40bc97:	e9 e8 82 ff ff       	jmp    0x403f84
40bc9c:	5b                   	pop    %ebx
40bc9d:	c3                   	ret
40bc9e:	8b c0                	mov    %eax,%eax
40bca0:	55                   	push   %ebp
40bca1:	8b ec                	mov    %esp,%ebp
40bca3:	83 c4 e0             	add    $0xffffffe0,%esp
40bca6:	53                   	push   %ebx
40bca7:	56                   	push   %esi
40bca8:	57                   	push   %edi
40bca9:	33 db                	xor    %ebx,%ebx
40bcab:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40bcae:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40bcb1:	8b f9                	mov    %ecx,%edi
40bcb3:	8b f2                	mov    %edx,%esi
40bcb5:	8b d8                	mov    %eax,%ebx
40bcb7:	33 c0                	xor    %eax,%eax
40bcb9:	55                   	push   %ebp
40bcba:	68 3c bd 40 00       	push   $0x40bd3c
40bcbf:	64 ff 30             	push   %fs:(%eax)
40bcc2:	64 89 20             	mov    %esp,%fs:(%eax)
40bcc5:	85 db                	test   %ebx,%ebx
40bcc7:	74 0c                	je     0x40bcd5
40bcc9:	8d 45 fc             	lea    -0x4(%ebp),%eax
40bccc:	8b d3                	mov    %ebx,%edx
40bcce:	e8 35 89 ff ff       	call   0x404608
40bcd3:	eb 0d                	jmp    0x40bce2
40bcd5:	8d 55 fc             	lea    -0x4(%ebp),%edx
40bcd8:	a1 38 0c 46 00       	mov    0x460c38,%eax
40bcdd:	e8 5a a4 ff ff       	call   0x40613c
40bce2:	8b 45 fc             	mov    -0x4(%ebp),%eax
40bce5:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40bce8:	c6 45 e8 0b          	movb   $0xb,-0x18(%ebp)
40bcec:	89 75 ec             	mov    %esi,-0x14(%ebp)
40bcef:	c6 45 f0 0b          	movb   $0xb,-0x10(%ebp)
40bcf3:	89 7d f4             	mov    %edi,-0xc(%ebp)
40bcf6:	c6 45 f8 00          	movb   $0x0,-0x8(%ebp)
40bcfa:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40bcfd:	50                   	push   %eax
40bcfe:	6a 02                	push   $0x2
40bd00:	8d 55 e0             	lea    -0x20(%ebp),%edx
40bd03:	a1 90 0c 46 00       	mov    0x460c90,%eax
40bd08:	e8 2f a4 ff ff       	call   0x40613c
40bd0d:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40bd10:	b2 01                	mov    $0x1,%dl
40bd12:	a1 58 7d 40 00       	mov    0x407d58,%eax
40bd17:	e8 34 fd ff ff       	call   0x40ba50
40bd1c:	8b d8                	mov    %eax,%ebx
40bd1e:	33 c0                	xor    %eax,%eax
40bd20:	5a                   	pop    %edx
40bd21:	59                   	pop    %ecx
40bd22:	59                   	pop    %ecx
40bd23:	64 89 10             	mov    %edx,%fs:(%eax)
40bd26:	68 43 bd 40 00       	push   $0x40bd43
40bd2b:	8d 45 e0             	lea    -0x20(%ebp),%eax
40bd2e:	e8 3d 88 ff ff       	call   0x404570
40bd33:	8d 45 fc             	lea    -0x4(%ebp),%eax
40bd36:	e8 35 88 ff ff       	call   0x404570
40bd3b:	c3                   	ret
40bd3c:	e9 0b 82 ff ff       	jmp    0x403f4c
40bd41:	eb e8                	jmp    0x40bd2b
40bd43:	8b c3                	mov    %ebx,%eax
40bd45:	5f                   	pop    %edi
40bd46:	5e                   	pop    %esi
40bd47:	5b                   	pop    %ebx
40bd48:	8b e5                	mov    %ebp,%esp
40bd4a:	5d                   	pop    %ebp
40bd4b:	c3                   	ret
40bd4c:	89 cc                	mov    %ecx,%esp
40bd4e:	89 14 24             	mov    %edx,(%esp)
40bd51:	8b 6d 00             	mov    0x0(%ebp),%ebp
40bd54:	e9 2b 82 ff ff       	jmp    0x403f84
40bd59:	c3                   	ret
40bd5a:	8b c0                	mov    %eax,%eax
40bd5c:	55                   	push   %ebp
40bd5d:	8b ec                	mov    %esp,%ebp
40bd5f:	e8 3c ff ff ff       	call   0x40bca0
40bd64:	8d 4d 08             	lea    0x8(%ebp),%ecx
40bd67:	83 c1 04             	add    $0x4,%ecx
40bd6a:	8b 55 08             	mov    0x8(%ebp),%edx
40bd6d:	e8 da ff ff ff       	call   0x40bd4c
40bd72:	5d                   	pop    %ebp
40bd73:	c2 04 00             	ret    $0x4
40bd76:	8b c0                	mov    %eax,%eax
40bd78:	8b 0d 68 0a 46 00    	mov    0x460a68,%ecx
40bd7e:	b2 01                	mov    $0x1,%dl
40bd80:	a1 b8 7d 40 00       	mov    0x407db8,%eax
40bd85:	e8 46 fd ff ff       	call   0x40bad0
40bd8a:	e8 f5 81 ff ff       	call   0x403f84
40bd8f:	c3                   	ret
40bd90:	8b 00                	mov    (%eax),%eax
40bd92:	3d 92 00 00 c0       	cmp    $0xc0000092,%eax
40bd97:	7f 2c                	jg     0x40bdc5
40bd99:	74 59                	je     0x40bdf4
40bd9b:	3d 8e 00 00 c0       	cmp    $0xc000008e,%eax
40bda0:	7f 15                	jg     0x40bdb7
40bda2:	74 53                	je     0x40bdf7
40bda4:	2d 05 00 00 c0       	sub    $0xc0000005,%eax
40bda9:	74 55                	je     0x40be00
40bdab:	2d 87 00 00 00       	sub    $0x87,%eax
40bdb0:	74 3c                	je     0x40bdee
40bdb2:	48                   	dec    %eax
40bdb3:	74 48                	je     0x40bdfd
40bdb5:	eb 55                	jmp    0x40be0c
40bdb7:	05 71 ff ff 3f       	add    $0x3fffff71,%eax
40bdbc:	83 e8 02             	sub    $0x2,%eax
40bdbf:	72 33                	jb     0x40bdf4
40bdc1:	74 37                	je     0x40bdfa
40bdc3:	eb 47                	jmp    0x40be0c
40bdc5:	3d 96 00 00 c0       	cmp    $0xc0000096,%eax
40bdca:	7f 11                	jg     0x40bddd
40bdcc:	74 35                	je     0x40be03
40bdce:	2d 93 00 00 c0       	sub    $0xc0000093,%eax
40bdd3:	74 28                	je     0x40bdfd
40bdd5:	48                   	dec    %eax
40bdd6:	74 13                	je     0x40bdeb
40bdd8:	48                   	dec    %eax
40bdd9:	74 16                	je     0x40bdf1