40b9c9:	6a 05                	push   $0x5
40b9cb:	ff 31                	push   (%ecx)
40b9cd:	ff 75 08             	push   0x8(%ebp)
40b9d0:	e8 42 01 00 00       	call   0x40bb17
40b9d5:	85 c0                	test   %eax,%eax
40b9d7:	79 27                	jns    0x40ba00
40b9d9:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
40b9df:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
40b9e5:	74 19                	je     0x40ba00
40b9e7:	84 59 1c             	test   %bl,0x1c(%ecx)
40b9ea:	74 14                	je     0x40ba00
40b9ec:	50                   	push   %eax
40b9ed:	ff 71 14             	push   0x14(%ecx)
40b9f0:	ba 30 22 40 00       	mov    $0x402230,%edx
40b9f5:	ff 71 10             	push   0x10(%ecx)
40b9f8:	6a 0b                	push   $0xb
40b9fa:	59                   	pop    %ecx
40b9fb:	e8 ce b9 ff ff       	call   0x4073ce
40ba00:	8d 4e 30             	lea    0x30(%esi),%ecx
40ba03:	e8 82 0f 00 00       	call   0x40c98a
40ba08:	85 c0                	test   %eax,%eax
40ba0a:	74 39                	je     0x40ba45
40ba0c:	6a 00                	push   $0x0
40ba0e:	6a 04                	push   $0x4
40ba10:	ff 31                	push   (%ecx)
40ba12:	ff 75 08             	push   0x8(%ebp)
40ba15:	e8 fd 00 00 00       	call   0x40bb17
40ba1a:	85 c0                	test   %eax,%eax
40ba1c:	79 27                	jns    0x40ba45
40ba1e:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
40ba24:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
40ba2a:	74 19                	je     0x40ba45
40ba2c:	84 59 1c             	test   %bl,0x1c(%ecx)
40ba2f:	74 14                	je     0x40ba45
40ba31:	50                   	push   %eax
40ba32:	ff 71 14             	push   0x14(%ecx)
40ba35:	ba 30 22 40 00       	mov    $0x402230,%edx
40ba3a:	ff 71 10             	push   0x10(%ecx)
40ba3d:	6a 0c                	push   $0xc
40ba3f:	59                   	pop    %ecx
40ba40:	e8 89 b9 ff ff       	call   0x4073ce
40ba45:	8d 4e 3c             	lea    0x3c(%esi),%ecx
40ba48:	e8 3d 0f 00 00       	call   0x40c98a
40ba4d:	85 c0                	test   %eax,%eax
40ba4f:	74 44                	je     0x40ba95
40ba51:	8b 86 80 01 00 00    	mov    0x180(%esi),%eax
40ba57:	23 c3                	and    %ebx,%eax
40ba59:	50                   	push   %eax
40ba5a:	6a 03                	push   $0x3
40ba5c:	ff 31                	push   (%ecx)
40ba5e:	ff 75 08             	push   0x8(%ebp)
40ba61:	e8 b1 00 00 00       	call   0x40bb17
40ba66:	8b f0                	mov    %eax,%esi
40ba68:	85 f6                	test   %esi,%esi
40ba6a:	79 29                	jns    0x40ba95
40ba6c:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
40ba72:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
40ba78:	74 1d                	je     0x40ba97
40ba7a:	84 59 1c             	test   %bl,0x1c(%ecx)
40ba7d:	74 18                	je     0x40ba97
40ba7f:	56                   	push   %esi
40ba80:	ff 71 14             	push   0x14(%ecx)
40ba83:	ba 30 22 40 00       	mov    $0x402230,%edx
40ba88:	ff 71 10             	push   0x10(%ecx)
40ba8b:	6a 0d                	push   $0xd
40ba8d:	59                   	pop    %ecx
40ba8e:	e8 3b b9 ff ff       	call   0x4073ce
40ba93:	eb 02                	jmp    0x40ba97
40ba95:	33 f6                	xor    %esi,%esi
40ba97:	8b c6                	mov    %esi,%eax
40ba99:	5e                   	pop    %esi
40ba9a:	5b                   	pop    %ebx
40ba9b:	59                   	pop    %ecx
40ba9c:	5d                   	pop    %ebp
40ba9d:	c2 04 00             	ret    $0x4
40baa0:	8b ff                	mov    %edi,%edi
40baa2:	55                   	push   %ebp
40baa3:	8b ec                	mov    %esp,%ebp
40baa5:	53                   	push   %ebx
40baa6:	56                   	push   %esi
40baa7:	8d 71 54             	lea    0x54(%ecx),%esi
40baaa:	ba 05 40 00 80       	mov    $0x80004005,%edx
40baaf:	8b 06                	mov    (%esi),%eax
40bab1:	57                   	push   %edi
40bab2:	85 c0                	test   %eax,%eax
40bab4:	74 30                	je     0x40bae6
40bab6:	33 db                	xor    %ebx,%ebx
40bab8:	66 39 18             	cmp    %bx,(%eax)
40babb:	74 29                	je     0x40bae6
40babd:	8b fb                	mov    %ebx,%edi
40babf:	8b ce                	mov    %esi,%ecx
40bac1:	e8 c4 0e 00 00       	call   0x40c98a
40bac6:	85 c0                	test   %eax,%eax
40bac8:	74 0f                	je     0x40bad9
40baca:	ff 36                	push   (%esi)
40bacc:	53                   	push   %ebx
40bacd:	57                   	push   %edi
40bace:	ff 75 08             	push   0x8(%ebp)
40bad1:	ff 15 98 c4 42 00    	call   *0x42c498
40bad7:	8b d0                	mov    %eax,%edx
40bad9:	47                   	inc    %edi
40bada:	83 c6 0c             	add    $0xc,%esi
40badd:	83 ff 0a             	cmp    $0xa,%edi
40bae0:	72 dd                	jb     0x40babf
40bae2:	8b c2                	mov    %edx,%eax
40bae4:	eb 2a                	jmp    0x40bb10
40bae6:	a1 00 b0 42 00       	mov    0x42b000,%eax
40baeb:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40baf0:	74 19                	je     0x40bb0b
40baf2:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40baf6:	74 13                	je     0x40bb0b
40baf8:	ff 70 14             	push   0x14(%eax)
40bafb:	ba 30 22 40 00       	mov    $0x402230,%edx
40bb00:	ff 70 10             	push   0x10(%eax)
40bb03:	6a 0e                	push   $0xe
40bb05:	59                   	pop    %ecx
40bb06:	e8 a5 b8 ff ff       	call   0x4073b0
40bb0b:	b8 03 80 1b 80       	mov    $0x801b8003,%eax
40bb10:	5f                   	pop    %edi
40bb11:	5e                   	pop    %esi
40bb12:	5b                   	pop    %ebx
40bb13:	5d                   	pop    %ebp
40bb14:	c2 04 00             	ret    $0x4
40bb17:	6a 14                	push   $0x14
40bb19:	b8 8a 85 42 00       	mov    $0x42858a,%eax
40bb1e:	e8 45 c5 01 00       	call   0x428068
40bb23:	33 c0                	xor    %eax,%eax
40bb25:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40bb28:	89 45 ec             	mov    %eax,-0x14(%ebp)
40bb2b:	89 45 e8             	mov    %eax,-0x18(%ebp)
40bb2e:	8b 75 0c             	mov    0xc(%ebp),%esi
40bb31:	8b 7d 14             	mov    0x14(%ebp),%edi
40bb34:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bb37:	85 f6                	test   %esi,%esi
40bb39:	74 09                	je     0x40bb44
40bb3b:	39 45 08             	cmp    %eax,0x8(%ebp)
40bb3e:	0f 85 d1 00 00 00    	jne    0x40bc15
40bb44:	a1 00 b0 42 00       	mov    0x42b000,%eax
40bb49:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40bb4e:	74 19                	je     0x40bb69
40bb50:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40bb54:	74 13                	je     0x40bb69
40bb56:	ff 70 14             	push   0x14(%eax)
40bb59:	ba 30 22 40 00       	mov    $0x402230,%edx
40bb5e:	ff 70 10             	push   0x10(%eax)
40bb61:	6a 0f                	push   $0xf
40bb63:	59                   	pop    %ecx
40bb64:	e8 47 b8 ff ff       	call   0x4073b0
40bb69:	bf 57 00 07 80       	mov    $0x80070057,%edi
40bb6e:	6a 01                	push   $0x1
40bb70:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40bb73:	e8 ad 10 00 00       	call   0x40cc25
40bb78:	8b c7                	mov    %edi,%eax
40bb7a:	e8 b7 c4 01 00       	call   0x428036
40bb7f:	c2 10 00             	ret    $0x10
40bb82:	8b c8                	mov    %eax,%ecx
40bb84:	2b ce                	sub    %esi,%ecx
40bb86:	d1 f9                	sar    $1,%ecx
40bb88:	51                   	push   %ecx
40bb89:	56                   	push   %esi
40bb8a:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40bb8d:	e8 57 04 00 00       	call   0x40bfe9
40bb92:	8b f8                	mov    %eax,%edi
40bb94:	85 ff                	test   %edi,%edi
40bb96:	0f 88 d2 00 00 00    	js     0x40bc6e
40bb9c:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40bb9f:	8b 7d 14             	mov    0x14(%ebp),%edi
40bba2:	85 f6                	test   %esi,%esi
40bba4:	74 2d                	je     0x40bbd3
40bba6:	6a 2e                	push   $0x2e
40bba8:	56                   	push   %esi
40bba9:	ff 15 28 c3 42 00    	call   *0x42c328
40bbaf:	59                   	pop    %ecx
40bbb0:	59                   	pop    %ecx
40bbb1:	85 c0                	test   %eax,%eax
40bbb3:	74 15                	je     0x40bbca
40bbb5:	68 24 22 40 00       	push   $0x402224
40bbba:	50                   	push   %eax
40bbbb:	ff 15 2c c3 42 00    	call   *0x42c32c
40bbc1:	f7 d8                	neg    %eax
40bbc3:	59                   	pop    %ecx
40bbc4:	1b c0                	sbb    %eax,%eax
40bbc6:	59                   	pop    %ecx
40bbc7:	40                   	inc    %eax
40bbc8:	eb 02                	jmp    0x40bbcc
40bbca:	33 c0                	xor    %eax,%eax
40bbcc:	85 c0                	test   %eax,%eax
40bbce:	74 03                	je     0x40bbd3
40bbd0:	83 cf 02             	or     $0x2,%edi
40bbd3:	57                   	push   %edi
40bbd4:	ff 75 10             	push   0x10(%ebp)
40bbd7:	56                   	push   %esi
40bbd8:	ff 75 08             	push   0x8(%ebp)
40bbdb:	ff 15 c8 c4 42 00    	call   *0x42c4c8
40bbe1:	85 c0                	test   %eax,%eax
40bbe3:	79 2a                	jns    0x40bc0f
40bbe5:	a1 00 b0 42 00       	mov    0x42b000,%eax
40bbea:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40bbef:	74 1e                	je     0x40bc0f
40bbf1:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40bbf5:	74 18                	je     0x40bc0f
40bbf7:	57                   	push   %edi
40bbf8:	ff 75 10             	push   0x10(%ebp)
40bbfb:	ba 30 22 40 00       	mov    $0x402230,%edx
40bc00:	56                   	push   %esi
40bc01:	ff 70 14             	push   0x14(%eax)
40bc04:	ff 70 10             	push   0x10(%eax)
40bc07:	6a 11                	push   $0x11
40bc09:	59                   	pop    %ecx
40bc0a:	e8 9d fb ff ff       	call   0x40b7ac
40bc0f:	8b 75 f0             	mov    -0x10(%ebp),%esi
40bc12:	83 c6 02             	add    $0x2,%esi
40bc15:	6a 7c                	push   $0x7c
40bc17:	56                   	push   %esi
40bc18:	ff 15 30 c3 42 00    	call   *0x42c330
40bc1e:	89 45 f0             	mov    %eax,-0x10(%ebp)
40bc21:	59                   	pop    %ecx
40bc22:	59                   	pop    %ecx
40bc23:	85 c0                	test   %eax,%eax
40bc25:	0f 85 57 ff ff ff    	jne    0x40bb82
40bc2b:	85 f6                	test   %esi,%esi
40bc2d:	74 38                	je     0x40bc67
40bc2f:	57                   	push   %edi
40bc30:	ff 75 10             	push   0x10(%ebp)
40bc33:	56                   	push   %esi
40bc34:	ff 75 08             	push   0x8(%ebp)
40bc37:	ff 15 c8 c4 42 00    	call   *0x42c4c8
40bc3d:	85 c0                	test   %eax,%eax
40bc3f:	79 26                	jns    0x40bc67
40bc41:	a1 00 b0 42 00       	mov    0x42b000,%eax
40bc46:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40bc4b:	74 1a                	je     0x40bc67
40bc4d:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40bc51:	74 14                	je     0x40bc67
40bc53:	56                   	push   %esi
40bc54:	ff 70 14             	push   0x14(%eax)
40bc57:	ba 30 22 40 00       	mov    $0x402230,%edx
40bc5c:	ff 70 10             	push   0x10(%eax)
40bc5f:	6a 12                	push   $0x12
40bc61:	59                   	pop    %ecx
40bc62:	e8 f1 bc ff ff       	call   0x407958
40bc67:	33 ff                	xor    %edi,%edi
40bc69:	e9 00 ff ff ff       	jmp    0x40bb6e
40bc6e:	a1 00 b0 42 00       	mov    0x42b000,%eax
40bc73:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40bc78:	0f 84 f0 fe ff ff    	je     0x40bb6e
40bc7e:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40bc82:	0f 84 e6 fe ff ff    	je     0x40bb6e
40bc88:	56                   	push   %esi
40bc89:	ff 70 14             	push   0x14(%eax)
40bc8c:	ba 30 22 40 00       	mov    $0x402230,%edx
40bc91:	ff 70 10             	push   0x10(%eax)
40bc94:	6a 10                	push   $0x10
40bc96:	59                   	pop    %ecx
40bc97:	e8 bc bc ff ff       	call   0x407958
40bc9c:	e9 cd fe ff ff       	jmp    0x40bb6e
40bca1:	6a 04                	push   $0x4
40bca3:	b8 05 86 42 00       	mov    $0x428605,%eax
40bca8:	e8 bb c3 01 00       	call   0x428068
40bcad:	8b f1                	mov    %ecx,%esi
40bcaf:	89 75 f0             	mov    %esi,-0x10(%ebp)
40bcb2:	33 c0                	xor    %eax,%eax
40bcb4:	89 06                	mov    %eax,(%esi)
40bcb6:	89 46 08             	mov    %eax,0x8(%esi)
40bcb9:	89 46 04             	mov    %eax,0x4(%esi)
40bcbc:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bcbf:	89 46 0c             	mov    %eax,0xc(%esi)
40bcc2:	89 46 14             	mov    %eax,0x14(%esi)
40bcc5:	89 46 10             	mov    %eax,0x10(%esi)
40bcc8:	89 46 18             	mov    %eax,0x18(%esi)
40bccb:	89 46 20             	mov    %eax,0x20(%esi)
40bcce:	89 46 1c             	mov    %eax,0x1c(%esi)
40bcd1:	89 46 24             	mov    %eax,0x24(%esi)
40bcd4:	89 46 2c             	mov    %eax,0x2c(%esi)
40bcd7:	89 46 28             	mov    %eax,0x28(%esi)
40bcda:	89 46 30             	mov    %eax,0x30(%esi)
40bcdd:	89 46 38             	mov    %eax,0x38(%esi)
40bce0:	89 46 34             	mov    %eax,0x34(%esi)
40bce3:	89 46 3c             	mov    %eax,0x3c(%esi)
40bce6:	89 46 44             	mov    %eax,0x44(%esi)
40bce9:	89 46 40             	mov    %eax,0x40(%esi)
40bcec:	89 46 48             	mov    %eax,0x48(%esi)
40bcef:	89 46 50             	mov    %eax,0x50(%esi)
40bcf2:	89 46 4c             	mov    %eax,0x4c(%esi)
40bcf5:	bb 50 79 40 00       	mov    $0x407950,%ebx
40bcfa:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
40bcfe:	53                   	push   %ebx
40bcff:	bf 60 cc 40 00       	mov    $0x40cc60,%edi
40bd04:	8d 46 54             	lea    0x54(%esi),%eax
40bd07:	57                   	push   %edi
40bd08:	6a 0a                	push   $0xa
40bd0a:	6a 0c                	push   $0xc
40bd0c:	50                   	push   %eax
40bd0d:	e8 7c c2 01 00       	call   0x427f8e
40bd12:	53                   	push   %ebx
40bd13:	57                   	push   %edi
40bd14:	6a 0b                	push   $0xb
40bd16:	6a 0c                	push   $0xc
40bd18:	8d 86 cc 00 00 00    	lea    0xcc(%esi),%eax
40bd1e:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
40bd22:	50                   	push   %eax
40bd23:	e8 66 c2 01 00       	call   0x427f8e
40bd28:	33 c0                	xor    %eax,%eax
40bd2a:	89 86 50 01 00 00    	mov    %eax,0x150(%esi)
40bd30:	89 86 58 01 00 00    	mov    %eax,0x158(%esi)
40bd36:	89 86 54 01 00 00    	mov    %eax,0x154(%esi)
40bd3c:	89 86 5c 01 00 00    	mov    %eax,0x15c(%esi)
40bd42:	89 86 64 01 00 00    	mov    %eax,0x164(%esi)
40bd48:	89 86 60 01 00 00    	mov    %eax,0x160(%esi)
40bd4e:	89 86 68 01 00 00    	mov    %eax,0x168(%esi)
40bd54:	89 86 70 01 00 00    	mov    %eax,0x170(%esi)
40bd5a:	89 86 6c 01 00 00    	mov    %eax,0x16c(%esi)
40bd60:	89 86 74 01 00 00    	mov    %eax,0x174(%esi)
40bd66:	89 86 7c 01 00 00    	mov    %eax,0x17c(%esi)
40bd6c:	89 86 78 01 00 00    	mov    %eax,0x178(%esi)
40bd72:	89 86 80 01 00 00    	mov    %eax,0x180(%esi)
40bd78:	89 86 84 01 00 00    	mov    %eax,0x184(%esi)
40bd7e:	8b c6                	mov    %esi,%eax
40bd80:	c7 86 88 01 00 00 03 	movl   $0x3,0x188(%esi)
40bd87:	00 00 00
40bd8a:	e8 a7 c2 01 00       	call   0x428036
40bd8f:	c3                   	ret
40bd90:	8b ff                	mov    %edi,%edi
40bd92:	55                   	push   %ebp
40bd93:	8b ec                	mov    %esp,%ebp
40bd95:	83 ec 34             	sub    $0x34,%esp
40bd98:	a1 74 b6 42 00       	mov    0x42b674,%eax
40bd9d:	33 c5                	xor    %ebp,%eax
40bd9f:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bda2:	53                   	push   %ebx
40bda3:	56                   	push   %esi
40bda4:	57                   	push   %edi
40bda5:	6a 2c                	push   $0x2c
40bda7:	8d 45 d0             	lea    -0x30(%ebp),%eax
40bdaa:	8b f9                	mov    %ecx,%edi
40bdac:	6a 00                	push   $0x0
40bdae:	50                   	push   %eax
40bdaf:	e8 f9 c5 01 00       	call   0x4283ad
40bdb4:	83 c4 0c             	add    $0xc,%esp
40bdb7:	8d 9f 74 01 00 00    	lea    0x174(%edi),%ebx
40bdbd:	33 f6                	xor    %esi,%esi
40bdbf:	8b cb                	mov    %ebx,%ecx
40bdc1:	ba 05 40 00 80       	mov    $0x80004005,%edx
40bdc6:	46                   	inc    %esi
40bdc7:	e8 be 0b 00 00       	call   0x40c98a
40bdcc:	85 c0                	test   %eax,%eax
40bdce:	74 3e                	je     0x40be0e
40bdd0:	8b 47 48             	mov    0x48(%edi),%eax
40bdd3:	8d 4f 54             	lea    0x54(%edi),%ecx
40bdd6:	89 45 d0             	mov    %eax,-0x30(%ebp)