40bb23:	e8 48 3b 02 00       	call   0x42f670
40bb28:	83 c4 0c             	add    $0xc,%esp
40bb2b:	5e                   	pop    %esi
40bb2c:	5d                   	pop    %ebp
40bb2d:	c2 04 00             	ret    $0x4
40bb30:	55                   	push   %ebp
40bb31:	8b ec                	mov    %esp,%ebp
40bb33:	83 ec 68             	sub    $0x68,%esp
40bb36:	53                   	push   %ebx
40bb37:	56                   	push   %esi
40bb38:	33 db                	xor    %ebx,%ebx
40bb3a:	8d 45 98             	lea    -0x68(%ebp),%eax
40bb3d:	57                   	push   %edi
40bb3e:	6a 44                	push   $0x44
40bb40:	53                   	push   %ebx
40bb41:	50                   	push   %eax
40bb42:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40bb45:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40bb48:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40bb4b:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40bb4e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40bb51:	e8 1a 3b 02 00       	call   0x42f670
40bb56:	33 c0                	xor    %eax,%eax
40bb58:	8d 7d dc             	lea    -0x24(%ebp),%edi
40bb5b:	ab                   	stos   %eax,%es:(%edi)
40bb5c:	83 c4 0c             	add    $0xc,%esp
40bb5f:	ab                   	stos   %eax,%es:(%edi)
40bb60:	ab                   	stos   %eax,%es:(%edi)
40bb61:	ab                   	stos   %eax,%es:(%edi)
40bb62:	8b 7d 0c             	mov    0xc(%ebp),%edi
40bb65:	8b 47 0c             	mov    0xc(%edi),%eax
40bb68:	85 c0                	test   %eax,%eax
40bb6a:	0f 84 89 00 00 00    	je     0x40bbf9
40bb70:	66 39 18             	cmp    %bx,(%eax)
40bb73:	0f 84 80 00 00 00    	je     0x40bbf9
40bb79:	53                   	push   %ebx
40bb7a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40bb7d:	51                   	push   %ecx
40bb7e:	50                   	push   %eax
40bb7f:	ff 75 08             	push   0x8(%ebp)
40bb82:	e8 48 b6 ff ff       	call   0x4071cf
40bb87:	8b f0                	mov    %eax,%esi
40bb89:	85 f6                	test   %esi,%esi
40bb8b:	79 12                	jns    0x40bb9f
40bb8d:	68 54 f3 44 00       	push   $0x44f354
40bb92:	56                   	push   %esi
40bb93:	e8 97 45 03 00       	call   0x44012f
40bb98:	59                   	pop    %ecx
40bb99:	59                   	pop    %ecx
40bb9a:	e9 54 01 00 00       	jmp    0x40bcf3
40bb9f:	ff 75 ec             	push   -0x14(%ebp)
40bba2:	8d 45 f0             	lea    -0x10(%ebp),%eax
40bba5:	ff 77 08             	push   0x8(%edi)
40bba8:	68 78 f3 44 00       	push   $0x44f378
40bbad:	50                   	push   %eax
40bbae:	e8 af 63 ff ff       	call   0x401f62
40bbb3:	8b f0                	mov    %eax,%esi
40bbb5:	83 c4 10             	add    $0x10,%esp
40bbb8:	85 f6                	test   %esi,%esi
40bbba:	79 07                	jns    0x40bbc3
40bbbc:	68 8c f3 44 00       	push   $0x44f38c
40bbc1:	eb cf                	jmp    0x40bb92
40bbc3:	53                   	push   %ebx
40bbc4:	8d 45 f4             	lea    -0xc(%ebp),%eax
40bbc7:	50                   	push   %eax
40bbc8:	ff 77 0c             	push   0xc(%edi)
40bbcb:	ff 75 08             	push   0x8(%ebp)
40bbce:	e8 16 b6 ff ff       	call   0x4071e9
40bbd3:	8b f0                	mov    %eax,%esi
40bbd5:	85 f6                	test   %esi,%esi
40bbd7:	79 07                	jns    0x40bbe0
40bbd9:	68 b4 f3 44 00       	push   $0x44f3b4
40bbde:	eb b2                	jmp    0x40bb92
40bbe0:	ff 75 f4             	push   -0xc(%ebp)
40bbe3:	8d 45 f8             	lea    -0x8(%ebp),%eax
40bbe6:	ff 77 08             	push   0x8(%edi)
40bbe9:	68 78 f3 44 00       	push   $0x44f378
40bbee:	50                   	push   %eax
40bbef:	e8 2c 63 ff ff       	call   0x401f20
40bbf4:	83 c4 10             	add    $0x10,%esp
40bbf7:	eb 2e                	jmp    0x40bc27
40bbf9:	ff 77 08             	push   0x8(%edi)
40bbfc:	8d 45 f0             	lea    -0x10(%ebp),%eax
40bbff:	68 e4 f3 44 00       	push   $0x44f3e4
40bc04:	50                   	push   %eax
40bc05:	e8 16 63 ff ff       	call   0x401f20
40bc0a:	8b f0                	mov    %eax,%esi
40bc0c:	83 c4 0c             	add    $0xc,%esp
40bc0f:	85 f6                	test   %esi,%esi
40bc11:	78 a9                	js     0x40bbbc
40bc13:	ff 77 08             	push   0x8(%edi)
40bc16:	8d 45 f8             	lea    -0x8(%ebp),%eax
40bc19:	68 e4 f3 44 00       	push   $0x44f3e4
40bc1e:	50                   	push   %eax
40bc1f:	e8 fc 62 ff ff       	call   0x401f20
40bc24:	83 c4 0c             	add    $0xc,%esp
40bc27:	8b f0                	mov    %eax,%esi
40bc29:	85 f6                	test   %esi,%esi
40bc2b:	79 0a                	jns    0x40bc37
40bc2d:	68 f0 f3 44 00       	push   $0x44f3f0
40bc32:	e9 5b ff ff ff       	jmp    0x40bb92
40bc37:	8d 45 fc             	lea    -0x4(%ebp),%eax
40bc3a:	50                   	push   %eax
40bc3b:	ff 77 08             	push   0x8(%edi)
40bc3e:	e8 03 78 ff ff       	call   0x403446
40bc43:	8b f0                	mov    %eax,%esi
40bc45:	85 f6                	test   %esi,%esi
40bc47:	79 10                	jns    0x40bc59
40bc49:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
40bc4c:	74 0b                	je     0x40bc59
40bc4e:	ff 75 fc             	push   -0x4(%ebp)
40bc51:	e8 99 98 03 00       	call   0x4454ef
40bc56:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40bc59:	ff 75 f8             	push   -0x8(%ebp)
40bc5c:	ff 77 08             	push   0x8(%edi)
40bc5f:	68 5a 02 00 20       	push   $0x2000025a
40bc64:	6a 02                	push   $0x2
40bc66:	e8 a4 98 ff ff       	call   0x40550f
40bc6b:	83 c4 10             	add    $0x10,%esp
40bc6e:	c7 45 98 44 00 00 00 	movl   $0x44,-0x68(%ebp)
40bc75:	8d 45 dc             	lea    -0x24(%ebp),%eax
40bc78:	50                   	push   %eax
40bc79:	8d 45 98             	lea    -0x68(%ebp),%eax
40bc7c:	50                   	push   %eax
40bc7d:	ff 75 fc             	push   -0x4(%ebp)
40bc80:	53                   	push   %ebx
40bc81:	68 00 02 00 00       	push   $0x200
40bc86:	53                   	push   %ebx
40bc87:	53                   	push   %ebx
40bc88:	53                   	push   %ebx
40bc89:	ff 75 f0             	push   -0x10(%ebp)
40bc8c:	ff 77 08             	push   0x8(%edi)
40bc8f:	ff 15 a4 b1 44 00    	call   *0x44b1a4
40bc95:	85 c0                	test   %eax,%eax
40bc97:	75 41                	jne    0x40bcda
40bc99:	ff 15 e8 b0 44 00    	call   *0x44b0e8
40bc9f:	0f b7 f0             	movzwl %ax,%esi
40bca2:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40bca8:	85 c0                	test   %eax,%eax
40bcaa:	0f 4e f0             	cmovle %eax,%esi
40bcad:	b8 05 40 00 80       	mov    $0x80004005,%eax
40bcb2:	85 f6                	test   %esi,%esi
40bcb4:	0f 49 f0             	cmovns %eax,%esi
40bcb7:	56                   	push   %esi
40bcb8:	68 be 00 00 00       	push   $0xbe
40bcbd:	68 b4 f2 44 00       	push   $0x44f2b4
40bcc2:	e8 0c 7b ff ff       	call   0x4037d3
40bcc7:	ff 77 08             	push   0x8(%edi)
40bcca:	68 20 f4 44 00       	push   $0x44f420
40bccf:	56                   	push   %esi
40bcd0:	e8 5a 44 03 00       	call   0x44012f
40bcd5:	83 c4 0c             	add    $0xc,%esp
40bcd8:	eb 19                	jmp    0x40bcf3
40bcda:	8b 4d 10             	mov    0x10(%ebp),%ecx
40bcdd:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40bce0:	89 01                	mov    %eax,(%ecx)
40bce2:	39 5f 10             	cmp    %ebx,0x10(%edi)
40bce5:	74 0c                	je     0x40bcf3
40bce7:	ff 77 10             	push   0x10(%edi)
40bcea:	ff 75 dc             	push   -0x24(%ebp)
40bced:	ff 15 58 b3 44 00    	call   *0x44b358
40bcf3:	ff 75 ec             	push   -0x14(%ebp)
40bcf6:	e8 98 6a ff ff       	call   0x402793
40bcfb:	39 5d f4             	cmp    %ebx,-0xc(%ebp)
40bcfe:	74 08                	je     0x40bd08
40bd00:	ff 75 f4             	push   -0xc(%ebp)
40bd03:	e8 e7 97 03 00       	call   0x4454ef
40bd08:	ff 75 f0             	push   -0x10(%ebp)
40bd0b:	e8 83 6a ff ff       	call   0x402793
40bd10:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
40bd13:	74 08                	je     0x40bd1d
40bd15:	ff 75 f8             	push   -0x8(%ebp)
40bd18:	e8 d2 97 03 00       	call   0x4454ef
40bd1d:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
40bd20:	74 08                	je     0x40bd2a
40bd22:	ff 75 fc             	push   -0x4(%ebp)
40bd25:	e8 c5 97 03 00       	call   0x4454ef
40bd2a:	8b 3d d4 b0 44 00    	mov    0x44b0d4,%edi
40bd30:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
40bd33:	74 08                	je     0x40bd3d
40bd35:	ff 75 e0             	push   -0x20(%ebp)
40bd38:	ff d7                	call   *%edi
40bd3a:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40bd3d:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
40bd40:	74 05                	je     0x40bd47
40bd42:	ff 75 dc             	push   -0x24(%ebp)
40bd45:	ff d7                	call   *%edi
40bd47:	5f                   	pop    %edi
40bd48:	8b c6                	mov    %esi,%eax
40bd4a:	5e                   	pop    %esi
40bd4b:	5b                   	pop    %ebx
40bd4c:	8b e5                	mov    %ebp,%esp
40bd4e:	5d                   	pop    %ebp
40bd4f:	c2 0c 00             	ret    $0xc
40bd52:	55                   	push   %ebp
40bd53:	8b ec                	mov    %esp,%ebp
40bd55:	83 ec 0c             	sub    $0xc,%esp
40bd58:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40bd5c:	8d 45 f4             	lea    -0xc(%ebp),%eax
40bd5f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40bd63:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40bd67:	56                   	push   %esi
40bd68:	50                   	push   %eax
40bd69:	68 34 f2 44 00       	push   $0x44f234
40bd6e:	ff 75 0c             	push   0xc(%ebp)
40bd71:	e8 8d 7a 03 00       	call   0x443803
40bd76:	8b f0                	mov    %eax,%esi
40bd78:	85 f6                	test   %esi,%esi
40bd7a:	79 12                	jns    0x40bd8e
40bd7c:	68 64 f2 44 00       	push   $0x44f264
40bd81:	56                   	push   %esi
40bd82:	e8 a8 43 03 00       	call   0x44012f
40bd87:	59                   	pop    %ecx
40bd88:	59                   	pop    %ecx
40bd89:	e9 49 01 00 00       	jmp    0x40bed7
40bd8e:	8b 45 f4             	mov    -0xc(%ebp),%eax
40bd91:	8d 55 f8             	lea    -0x8(%ebp),%edx
40bd94:	52                   	push   %edx
40bd95:	50                   	push   %eax
40bd96:	8b 08                	mov    (%eax),%ecx
40bd98:	ff 51 20             	call   *0x20(%ecx)
40bd9b:	8b f0                	mov    %eax,%esi
40bd9d:	85 f6                	test   %esi,%esi
40bd9f:	79 07                	jns    0x40bda8
40bda1:	68 8c f2 44 00       	push   $0x44f28c
40bda6:	eb d9                	jmp    0x40bd81
40bda8:	8b 45 f8             	mov    -0x8(%ebp),%eax
40bdab:	85 c0                	test   %eax,%eax
40bdad:	0f 84 24 01 00 00    	je     0x40bed7
40bdb3:	6a 01                	push   $0x1
40bdb5:	c1 e0 04             	shl    $0x4,%eax
40bdb8:	50                   	push   %eax
40bdb9:	e8 16 7b ff ff       	call   0x4038d4
40bdbe:	8b 4d 08             	mov    0x8(%ebp),%ecx
40bdc1:	89 01                	mov    %eax,(%ecx)
40bdc3:	85 c0                	test   %eax,%eax
40bdc5:	75 19                	jne    0x40bde0
40bdc7:	be 0e 00 07 80       	mov    $0x8007000e,%esi
40bdcc:	56                   	push   %esi
40bdcd:	6a 22                	push   $0x22
40bdcf:	68 b4 f2 44 00       	push   $0x44f2b4
40bdd4:	e8 fa 79 ff ff       	call   0x4037d3
40bdd9:	68 c4 f2 44 00       	push   $0x44f2c4
40bdde:	eb a1                	jmp    0x40bd81
40bde0:	8b 45 f8             	mov    -0x8(%ebp),%eax
40bde3:	53                   	push   %ebx
40bde4:	33 db                	xor    %ebx,%ebx
40bde6:	89 41 04             	mov    %eax,0x4(%ecx)
40bde9:	57                   	push   %edi
40bdea:	85 c0                	test   %eax,%eax
40bdec:	0f 84 e1 00 00 00    	je     0x40bed3
40bdf2:	33 c0                	xor    %eax,%eax
40bdf4:	89 45 0c             	mov    %eax,0xc(%ebp)
40bdf7:	8b 39                	mov    (%ecx),%edi
40bdf9:	03 f8                	add    %eax,%edi
40bdfb:	8d 45 fc             	lea    -0x4(%ebp),%eax
40bdfe:	6a 00                	push   $0x0
40be00:	50                   	push   %eax
40be01:	ff 75 f4             	push   -0xc(%ebp)
40be04:	e8 57 79 03 00       	call   0x443760
40be09:	8b f0                	mov    %eax,%esi
40be0b:	85 f6                	test   %esi,%esi
40be0d:	0f 88 b1 00 00 00    	js     0x40bec4
40be13:	57                   	push   %edi
40be14:	68 64 ca 44 00       	push   $0x44ca64
40be19:	ff 75 fc             	push   -0x4(%ebp)
40be1c:	e8 a6 73 03 00       	call   0x4431c7
40be21:	8b f0                	mov    %eax,%esi
40be23:	85 f6                	test   %esi,%esi
40be25:	0f 88 92 00 00 00    	js     0x40bebd
40be2b:	8d 47 04             	lea    0x4(%edi),%eax
40be2e:	50                   	push   %eax
40be2f:	68 40 e3 44 00       	push   $0x44e340
40be34:	ff 75 fc             	push   -0x4(%ebp)
40be37:	e8 8b 73 03 00       	call   0x4431c7
40be3c:	8b f0                	mov    %eax,%esi
40be3e:	85 f6                	test   %esi,%esi
40be40:	78 74                	js     0x40beb6
40be42:	8d 47 08             	lea    0x8(%edi),%eax
40be45:	50                   	push   %eax
40be46:	68 0c f3 44 00       	push   $0x44f30c
40be4b:	ff 75 fc             	push   -0x4(%ebp)
40be4e:	e8 74 73 03 00       	call   0x4431c7
40be53:	8b f0                	mov    %eax,%esi
40be55:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40be5b:	74 04                	je     0x40be61
40be5d:	85 f6                	test   %esi,%esi
40be5f:	78 47                	js     0x40bea8
40be61:	8d 47 0c             	lea    0xc(%edi),%eax
40be64:	50                   	push   %eax
40be65:	68 88 e3 44 00       	push   $0x44e388
40be6a:	ff 75 fc             	push   -0x4(%ebp)
40be6d:	e8 69 75 03 00       	call   0x4433db
40be72:	8b f0                	mov    %eax,%esi
40be74:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40be7a:	74 04                	je     0x40be80
40be7c:	85 f6                	test   %esi,%esi
40be7e:	78 2f                	js     0x40beaf
40be80:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40be83:	85 c9                	test   %ecx,%ecx
40be85:	74 0a                	je     0x40be91
40be87:	8b 01                	mov    (%ecx),%eax
40be89:	51                   	push   %ecx
40be8a:	ff 50 08             	call   *0x8(%eax)
40be8d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40be91:	8b 45 0c             	mov    0xc(%ebp),%eax
40be94:	43                   	inc    %ebx
40be95:	83 c0 10             	add    $0x10,%eax
40be98:	89 45 0c             	mov    %eax,0xc(%ebp)
40be9b:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
40be9e:	73 33                	jae    0x40bed3
40bea0:	8b 4d 08             	mov    0x8(%ebp),%ecx
40bea3:	e9 4f ff ff ff       	jmp    0x40bdf7
40bea8:	68 20 f3 44 00       	push   $0x44f320
40bead:	eb 1a                	jmp    0x40bec9
40beaf:	68 3c f3 44 00       	push   $0x44f33c
40beb4:	eb 13                	jmp    0x40bec9
40beb6:	68 f8 f2 44 00       	push   $0x44f2f8
40bebb:	eb 0c                	jmp    0x40bec9
40bebd:	68 6c ca 44 00       	push   $0x44ca6c
40bec2:	eb 05                	jmp    0x40bec9
40bec4:	68 48 ca 44 00       	push   $0x44ca48
40bec9:	56                   	push   %esi
40beca:	e8 60 42 03 00       	call   0x44012f
40becf:	59                   	pop    %ecx
40bed0:	59                   	pop    %ecx
40bed1:	eb 02                	jmp    0x40bed5
40bed3:	33 f6                	xor    %esi,%esi
40bed5:	5f                   	pop    %edi
40bed6:	5b                   	pop    %ebx
40bed7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40beda:	85 c9                	test   %ecx,%ecx
40bedc:	74 06                	je     0x40bee4
40bede:	8b 01                	mov    (%ecx),%eax
40bee0:	51                   	push   %ecx
40bee1:	ff 50 08             	call   *0x8(%eax)
40bee4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40bee7:	85 c9                	test   %ecx,%ecx
40bee9:	74 06                	je     0x40bef1
40beeb:	8b 01                	mov    (%ecx),%eax
40beed:	51                   	push   %ecx
40beee:	ff 50 08             	call   *0x8(%eax)
40bef1:	8b c6                	mov    %esi,%eax
40bef3:	5e                   	pop    %esi
40bef4:	8b e5                	mov    %ebp,%esp
40bef6:	5d                   	pop    %ebp
40bef7:	c2 08 00             	ret    $0x8
40befa:	55                   	push   %ebp
40befb:	8b ec                	mov    %esp,%ebp
40befd:	56                   	push   %esi