40b8e8:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
40b8ee:	ff 70 04             	push   0x4(%eax)
40b8f1:	68 b4 f0 44 00       	push   $0x44f0b4
40b8f6:	57                   	push   %edi
40b8f7:	e8 33 48 03 00       	call   0x44012f
40b8fc:	8b bd 94 fe ff ff    	mov    -0x16c(%ebp),%edi
40b902:	83 c4 0c             	add    $0xc,%esp
40b905:	e9 37 01 00 00       	jmp    0x40ba41
40b90a:	8d 85 74 fe ff ff    	lea    -0x18c(%ebp),%eax
40b910:	50                   	push   %eax
40b911:	ff 73 04             	push   0x4(%ebx)
40b914:	e8 b2 8f 03 00       	call   0x4448cb
40b919:	8b f0                	mov    %eax,%esi
40b91b:	85 f6                	test   %esi,%esi
40b91d:	79 0a                	jns    0x40b929
40b91f:	68 ec f0 44 00       	push   $0x44f0ec
40b924:	e9 0c ff ff ff       	jmp    0x40b835
40b929:	8b 57 18             	mov    0x18(%edi),%edx
40b92c:	89 53 08             	mov    %edx,0x8(%ebx)
40b92f:	83 7f 20 00          	cmpl   $0x0,0x20(%edi)
40b933:	74 08                	je     0x40b93d
40b935:	8b 47 24             	mov    0x24(%edi),%eax
40b938:	03 47 20             	add    0x20(%edi),%eax
40b93b:	eb 19                	jmp    0x40b956
40b93d:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
40b943:	85 c9                	test   %ecx,%ecx
40b945:	74 0a                	je     0x40b951
40b947:	8b 85 88 fe ff ff    	mov    -0x178(%ebp),%eax
40b94d:	03 c1                	add    %ecx,%eax
40b94f:	eb 05                	jmp    0x40b956
40b951:	8b 47 30             	mov    0x30(%edi),%eax
40b954:	03 c2                	add    %edx,%eax
40b956:	89 43 0c             	mov    %eax,0xc(%ebx)
40b959:	8b 85 74 fe ff ff    	mov    -0x18c(%ebp),%eax
40b95f:	89 43 10             	mov    %eax,0x10(%ebx)
40b962:	8b 85 78 fe ff ff    	mov    -0x188(%ebp),%eax
40b968:	89 43 14             	mov    %eax,0x14(%ebx)
40b96b:	8b 85 80 fe ff ff    	mov    -0x180(%ebp),%eax
40b971:	89 43 18             	mov    %eax,0x18(%ebx)
40b974:	8b 85 7c fe ff ff    	mov    -0x184(%ebp),%eax
40b97a:	89 43 1c             	mov    %eax,0x1c(%ebx)
40b97d:	8b 85 90 fe ff ff    	mov    -0x170(%ebp),%eax
40b983:	89 43 20             	mov    %eax,0x20(%ebx)
40b986:	8b 47 1c             	mov    0x1c(%edi),%eax
40b989:	89 43 24             	mov    %eax,0x24(%ebx)
40b98c:	8b 47 20             	mov    0x20(%edi),%eax
40b98f:	89 43 28             	mov    %eax,0x28(%ebx)
40b992:	8b 47 24             	mov    0x24(%edi),%eax
40b995:	89 43 2c             	mov    %eax,0x2c(%ebx)
40b998:	8b 47 28             	mov    0x28(%edi),%eax
40b99b:	89 43 30             	mov    %eax,0x30(%ebx)
40b99e:	8b 47 2c             	mov    0x2c(%edi),%eax
40b9a1:	89 43 34             	mov    %eax,0x34(%ebx)
40b9a4:	6a 01                	push   $0x1
40b9a6:	c1 e0 02             	shl    $0x2,%eax
40b9a9:	50                   	push   %eax
40b9aa:	e8 25 7f ff ff       	call   0x4038d4
40b9af:	8b c8                	mov    %eax,%ecx
40b9b1:	89 4b 38             	mov    %ecx,0x38(%ebx)
40b9b4:	85 c9                	test   %ecx,%ecx
40b9b6:	75 22                	jne    0x40b9da
40b9b8:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
40b9bd:	53                   	push   %ebx
40b9be:	68 ef 00 00 00       	push   $0xef
40b9c3:	68 d4 ed 44 00       	push   $0x44edd4
40b9c8:	8b f3                	mov    %ebx,%esi
40b9ca:	e8 04 7e ff ff       	call   0x4037d3
40b9cf:	68 10 f1 44 00       	push   $0x44f110
40b9d4:	53                   	push   %ebx
40b9d5:	e9 5c fe ff ff       	jmp    0x40b836
40b9da:	8b 43 34             	mov    0x34(%ebx),%eax
40b9dd:	c1 e0 02             	shl    $0x2,%eax
40b9e0:	50                   	push   %eax
40b9e1:	8d 47 30             	lea    0x30(%edi),%eax
40b9e4:	50                   	push   %eax
40b9e5:	51                   	push   %ecx
40b9e6:	e8 05 37 02 00       	call   0x42f0f0
40b9eb:	83 c4 0c             	add    $0xc,%esp
40b9ee:	8d 47 08             	lea    0x8(%edi),%eax
40b9f1:	50                   	push   %eax
40b9f2:	e8 0f f7 ff ff       	call   0x40b106
40b9f7:	8b f0                	mov    %eax,%esi
40b9f9:	85 f6                	test   %esi,%esi
40b9fb:	79 44                	jns    0x40ba41
40b9fd:	56                   	push   %esi
40b9fe:	68 f5 00 00 00       	push   $0xf5
40ba03:	68 d4 ed 44 00       	push   $0x44edd4
40ba08:	e8 c6 7d ff ff       	call   0x4037d3
40ba0d:	68 40 f1 44 00       	push   $0x44f140
40ba12:	e9 1e fe ff ff       	jmp    0x40b835
40ba17:	bf 0d 00 07 80       	mov    $0x8007000d,%edi
40ba1c:	57                   	push   %edi
40ba1d:	68 a0 00 00 00       	push   $0xa0
40ba22:	68 d4 ed 44 00       	push   $0x44edd4
40ba27:	8b f7                	mov    %edi,%esi
40ba29:	e8 a5 7d ff ff       	call   0x4037d3
40ba2e:	68 f0 ef 44 00       	push   $0x44eff0
40ba33:	57                   	push   %edi
40ba34:	e8 f6 46 03 00       	call   0x44012f
40ba39:	8b bd 94 fe ff ff    	mov    -0x16c(%ebp),%edi
40ba3f:	59                   	pop    %ecx
40ba40:	59                   	pop    %ecx
40ba41:	85 ff                	test   %edi,%edi
40ba43:	0f 84 ab 00 00 00    	je     0x40baf4
40ba49:	57                   	push   %edi
40ba4a:	e8 4a 7f ff ff       	call   0x403999
40ba4f:	e9 a0 00 00 00       	jmp    0x40baf4
40ba54:	bf 0d 00 07 80       	mov    $0x8007000d,%edi
40ba59:	57                   	push   %edi
40ba5a:	68 92 00 00 00       	push   $0x92
40ba5f:	68 d4 ed 44 00       	push   $0x44edd4
40ba64:	8b f7                	mov    %edi,%esi
40ba66:	e8 68 7d ff ff       	call   0x4037d3
40ba6b:	ff b5 84 fe ff ff    	push   -0x17c(%ebp)
40ba71:	68 ac ef 44 00       	push   $0x44efac
40ba76:	57                   	push   %edi
40ba77:	eb 35                	jmp    0x40baae
40ba79:	ff 15 e8 b0 44 00    	call   *0x44b0e8
40ba7f:	0f b7 f0             	movzwl %ax,%esi
40ba82:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40ba88:	85 c0                	test   %eax,%eax
40ba8a:	0f 4e f0             	cmovle %eax,%esi
40ba8d:	b8 05 40 00 80       	mov    $0x80004005,%eax
40ba92:	85 f6                	test   %esi,%esi
40ba94:	0f 49 f0             	cmovns %eax,%esi
40ba97:	56                   	push   %esi
40ba98:	68 8d 00 00 00       	push   $0x8d
40ba9d:	68 d4 ed 44 00       	push   $0x44edd4
40baa2:	e8 2c 7d ff ff       	call   0x4037d3
40baa7:	57                   	push   %edi
40baa8:	68 7c ef 44 00       	push   $0x44ef7c
40baad:	56                   	push   %esi
40baae:	e8 7c 46 03 00       	call   0x44012f
40bab3:	83 c4 0c             	add    $0xc,%esp
40bab6:	eb 3c                	jmp    0x40baf4
40bab8:	bf 0d 00 07 80       	mov    $0x8007000d,%edi
40babd:	57                   	push   %edi
40babe:	6a 64                	push   $0x64
40bac0:	68 d4 ed 44 00       	push   $0x44edd4
40bac5:	8b f7                	mov    %edi,%esi
40bac7:	e8 07 7d ff ff       	call   0x4037d3
40bacc:	68 c0 ee 44 00       	push   $0x44eec0
40bad1:	eb 19                	jmp    0x40baec
40bad3:	bf 0d 00 07 80       	mov    $0x8007000d,%edi
40bad8:	57                   	push   %edi
40bad9:	6a 4e                	push   $0x4e
40badb:	68 d4 ed 44 00       	push   $0x44edd4
40bae0:	8b f7                	mov    %edi,%esi
40bae2:	e8 ec 7c ff ff       	call   0x4037d3
40bae7:	68 50 ee 44 00       	push   $0x44ee50
40baec:	57                   	push   %edi
40baed:	e8 3d 46 03 00       	call   0x44012f
40baf2:	59                   	pop    %ecx
40baf3:	59                   	pop    %ecx
40baf4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40baf7:	8b c6                	mov    %esi,%eax
40baf9:	5f                   	pop    %edi
40bafa:	5e                   	pop    %esi
40bafb:	33 cd                	xor    %ebp,%ecx
40bafd:	5b                   	pop    %ebx
40bafe:	e8 33 23 02 00       	call   0x42de36
40bb03:	8b e5                	mov    %ebp,%esp
40bb05:	5d                   	pop    %ebp
40bb06:	c2 0c 00             	ret    $0xc
40bb09:	55                   	push   %ebp
40bb0a:	8b ec                	mov    %esp,%ebp
40bb0c:	56                   	push   %esi
40bb0d:	8b 75 08             	mov    0x8(%ebp),%esi
40bb10:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
40bb14:	74 08                	je     0x40bb1e
40bb16:	ff 76 38             	push   0x38(%esi)
40bb19:	e8 7b 7e ff ff       	call   0x403999
40bb1e:	6a 40                	push   $0x40
40bb20:	6a 00                	push   $0x0
40bb22:	56                   	push   %esi
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