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
40bbcc:	33 c0                	xor    %eax,%eax
40bbce:	66 3b 06             	cmp    (%esi),%ax
40bbd1:	74 6a                	je     0x40bc3d
40bbd3:	39 44 24 10          	cmp    %eax,0x10(%esp)
40bbd7:	74 64                	je     0x40bc3d
40bbd9:	f7 44 24 4c 00 04 00 	testl  $0x400,0x4c(%esp)
40bbe0:	00
40bbe1:	75 5a                	jne    0x40bc3d
40bbe3:	53                   	push   %ebx
40bbe4:	68 80 00 00 00       	push   $0x80
40bbe9:	6a 02                	push   $0x2
40bbeb:	51                   	push   %ecx
40bbec:	e8 83 bf ff ff       	call   0x407b74
40bbf1:	59                   	pop    %ecx
40bbf2:	50                   	push   %eax
40bbf3:	53                   	push   %ebx
40bbf4:	68 00 00 00 40       	push   $0x40000000
40bbf9:	ff 74 24 4c          	push   0x4c(%esp)
40bbfd:	ff 15 80 b1 41 00    	call   *0x41b180
40bc03:	8b f8                	mov    %eax,%edi
40bc05:	83 ff ff             	cmp    $0xffffffff,%edi
40bc08:	74 33                	je     0x40bc3d
40bc0a:	39 1d 48 50 41 00    	cmp    %ebx,0x415048
40bc10:	74 0e                	je     0x40bc20
40bc12:	57                   	push   %edi
40bc13:	51                   	push   %ecx
40bc14:	6a 04                	push   $0x4
40bc16:	e8 a8 72 00 00       	call   0x412ec3
40bc1b:	85 c0                	test   %eax,%eax
40bc1d:	0f 99 c3             	setns  %bl
40bc20:	85 db                	test   %ebx,%ebx
40bc22:	75 12                	jne    0x40bc36
40bc24:	6a 10                	push   $0x10
40bc26:	51                   	push   %ecx
40bc27:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
40bc2b:	6a 44                	push   $0x44
40bc2d:	5a                   	pop    %edx
40bc2e:	8b 49 04             	mov    0x4(%ecx),%ecx
40bc31:	e8 b5 41 00 00       	call   0x40fdeb
40bc36:	57                   	push   %edi
40bc37:	ff 15 54 b1 41 00    	call   *0x41b154
40bc3d:	56                   	push   %esi
40bc3e:	ff 15 24 b3 41 00    	call   *0x41b324
40bc44:	59                   	pop    %ecx
40bc45:	5f                   	pop    %edi
40bc46:	5e                   	pop    %esi
40bc47:	5b                   	pop    %ebx
40bc48:	8b e5                	mov    %ebp,%esp
40bc4a:	5d                   	pop    %ebp
40bc4b:	c3                   	ret
40bc4c:	cc                   	int3
40bc4d:	cc                   	int3
40bc4e:	cc                   	int3
40bc4f:	cc                   	int3
40bc50:	8b ff                	mov    %edi,%edi
40bc52:	55                   	push   %ebp
40bc53:	8b ec                	mov    %esp,%ebp
40bc55:	56                   	push   %esi
40bc56:	8b f1                	mov    %ecx,%esi
40bc58:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
40bc5c:	c7 06 c0 16 40 00    	movl   $0x4016c0,(%esi)
40bc62:	74 0e                	je     0x40bc72
40bc64:	ff 76 10             	push   0x10(%esi)
40bc67:	ff 15 24 b3 41 00    	call   *0x41b324
40bc6d:	83 66 10 00          	andl   $0x0,0x10(%esi)
40bc71:	59                   	pop    %ecx
40bc72:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40bc76:	c7 06 90 15 40 00    	movl   $0x401590,(%esi)
40bc7c:	74 08                	je     0x40bc86
40bc7e:	56                   	push   %esi
40bc7f:	ff 15 cc b2 41 00    	call   *0x41b2cc
40bc85:	59                   	pop    %ecx
40bc86:	8b c6                	mov    %esi,%eax
40bc88:	5e                   	pop    %esi
40bc89:	5d                   	pop    %ebp
40bc8a:	c2 04 00             	ret    $0x4
40bc8d:	cc                   	int3
40bc8e:	cc                   	int3
40bc8f:	cc                   	int3
40bc90:	8b ff                	mov    %edi,%edi
40bc92:	55                   	push   %ebp
40bc93:	8b ec                	mov    %esp,%ebp
40bc95:	83 ec 7c             	sub    $0x7c,%esp
40bc98:	53                   	push   %ebx
40bc99:	8b d9                	mov    %ecx,%ebx
40bc9b:	8b 4b 04             	mov    0x4(%ebx),%ecx
40bc9e:	e8 01 40 00 00       	call   0x40fca4
40bca3:	8b 43 0c             	mov    0xc(%ebx),%eax
40bca6:	33 c9                	xor    %ecx,%ecx
40bca8:	6a 04                	push   $0x4
40bcaa:	5a                   	pop    %edx
40bcab:	0f b6 40 04          	movzbl 0x4(%eax),%eax
40bcaf:	f7 e2                	mul    %edx
40bcb1:	0f 90 c1             	seto   %cl
40bcb4:	f7 d9                	neg    %ecx
40bcb6:	0b c8                	or     %eax,%ecx
40bcb8:	51                   	push   %ecx
40bcb9:	e8 ce 78 00 00       	call   0x41358c
40bcbe:	89 43 10             	mov    %eax,0x10(%ebx)
40bcc1:	59                   	pop    %ecx
40bcc2:	85 c0                	test   %eax,%eax
40bcc4:	0f 84 64 01 00 00    	je     0x40be2e
40bcca:	8b 4b 0c             	mov    0xc(%ebx),%ecx
40bccd:	56                   	push   %esi
40bcce:	57                   	push   %edi
40bccf:	0f b6 49 04          	movzbl 0x4(%ecx),%ecx
40bcd3:	c1 e1 02             	shl    $0x2,%ecx
40bcd6:	51                   	push   %ecx
40bcd7:	6a 00                	push   $0x0
40bcd9:	50                   	push   %eax
40bcda:	e8 82 84 00 00       	call   0x414161
40bcdf:	8b 43 0c             	mov    0xc(%ebx),%eax
40bce2:	83 c4 0c             	add    $0xc,%esp
40bce5:	8b cb                	mov    %ebx,%ecx
40bce7:	8b 00                	mov    (%eax),%eax
40bce9:	50                   	push   %eax
40bcea:	68 09 04 00 00       	push   $0x409
40bcef:	a3 14 98 41 00       	mov    %eax,0x419814
40bcf4:	e8 73 0f 00 00       	call   0x40cc6c
40bcf9:	ff 35 14 98 41 00    	push   0x419814
40bcff:	8b cb                	mov    %ebx,%ecx
40bd01:	68 f1 03 00 00       	push   $0x3f1
40bd06:	e8 61 0f 00 00       	call   0x40cc6c
40bd0b:	83 65 d4 00          	andl   $0x0,-0x2c(%ebp)
40bd0f:	8d 75 c8             	lea    -0x38(%ebp),%esi
40bd12:	6a 0a                	push   $0xa
40bd14:	59                   	pop    %ecx
40bd15:	b8 00 00 ff ff       	mov    $0xffff0000,%eax
40bd1a:	c7 45 c8 01 00 00 00 	movl   $0x1,-0x38(%ebp)
40bd21:	68 09 04 00 00       	push   $0x409
40bd26:	ff 73 04             	push   0x4(%ebx)
40bd29:	89 45 84             	mov    %eax,-0x7c(%ebp)
40bd2c:	8d 7d 8c             	lea    -0x74(%ebp),%edi
40bd2f:	89 45 88             	mov    %eax,-0x78(%ebp)
40bd32:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40bd34:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40bd3a:	8b f8                	mov    %eax,%edi
40bd3c:	6a 22                	push   $0x22
40bd3e:	89 7d f0             	mov    %edi,-0x10(%ebp)
40bd41:	e8 46 78 00 00       	call   0x41358c
40bd46:	8b f0                	mov    %eax,%esi
40bd48:	89 75 f4             	mov    %esi,-0xc(%ebp)
40bd4b:	59                   	pop    %ecx
40bd4c:	85 f6                	test   %esi,%esi
40bd4e:	0f 84 a6 00 00 00    	je     0x40bdfa
40bd54:	8b 4b 0c             	mov    0xc(%ebx),%ecx
40bd57:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40bd5b:	80 79 04 00          	cmpb   $0x0,0x4(%ecx)
40bd5f:	0f 86 8d 00 00 00    	jbe    0x40bdf2
40bd65:	33 ff                	xor    %edi,%edi
40bd67:	89 7d f8             	mov    %edi,-0x8(%ebp)
40bd6a:	8b 43 0c             	mov    0xc(%ebx),%eax
40bd6d:	83 c0 08             	add    $0x8,%eax
40bd70:	6a ff                	push   $0xffffffff
40bd72:	03 c7                	add    %edi,%eax
40bd74:	50                   	push   %eax
40bd75:	6a 11                	push   $0x11
40bd77:	56                   	push   %esi
40bd78:	ff 15 e8 b2 41 00    	call   *0x41b2e8
40bd7e:	6a ff                	push   $0xffffffff
40bd80:	68 40 3b 40 00       	push   $0x403b40
40bd85:	6a 11                	push   $0x11
40bd87:	56                   	push   %esi
40bd88:	ff 15 68 b3 41 00    	call   *0x41b368
40bd8e:	8b 43 0c             	mov    0xc(%ebx),%eax
40bd91:	83 c0 2a             	add    $0x2a,%eax
40bd94:	6a ff                	push   $0xffffffff
40bd96:	03 c7                	add    %edi,%eax
40bd98:	50                   	push   %eax
40bd99:	6a 11                	push   $0x11
40bd9b:	56                   	push   %esi
40bd9c:	ff 15 68 b3 41 00    	call   *0x41b368
40bda2:	83 c4 30             	add    $0x30,%esp
40bda5:	89 75 d8             	mov    %esi,-0x28(%ebp)
40bda8:	8d 45 84             	lea    -0x7c(%ebp),%eax