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)
40bdd9:	8b d6                	mov    %esi,%edx
40bddb:	e8 aa 0b 00 00       	call   0x40c98a
40bde0:	85 c0                	test   %eax,%eax
40bde2:	74 10                	je     0x40bdf4
40bde4:	8b 01                	mov    (%ecx),%eax
40bde6:	46                   	inc    %esi
40bde7:	89 44 95 d0          	mov    %eax,-0x30(%ebp,%edx,4)
40bdeb:	83 c1 0c             	add    $0xc,%ecx
40bdee:	42                   	inc    %edx
40bdef:	83 fa 0b             	cmp    $0xb,%edx
40bdf2:	72 e7                	jb     0x40bddb
40bdf4:	83 ec 10             	sub    $0x10,%esp
40bdf7:	8d 45 d0             	lea    -0x30(%ebp),%eax
40bdfa:	33 d2                	xor    %edx,%edx
40bdfc:	b9 88 13 00 c0       	mov    $0xc0001388,%ecx
40be01:	56                   	push   %esi
40be02:	50                   	push   %eax
40be03:	ff 33                	push   (%ebx)
40be05:	6a 04                	push   $0x4
40be07:	e8 3e 5f 00 00       	call   0x411d4a
40be0c:	8b d0                	mov    %eax,%edx
40be0e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40be11:	8b c2                	mov    %edx,%eax
40be13:	5f                   	pop    %edi
40be14:	5e                   	pop    %esi
40be15:	33 cd                	xor    %ebp,%ecx
40be17:	5b                   	pop    %ebx
40be18:	e8 c3 bc 01 00       	call   0x427ae0
40be1d:	c9                   	leave
40be1e:	c3                   	ret
40be1f:	8b ff                	mov    %edi,%edi
40be21:	55                   	push   %ebp
40be22:	8b ec                	mov    %esp,%ebp
40be24:	6a 00                	push   $0x0
40be26:	6a 08                	push   $0x8
40be28:	8d 45 10             	lea    0x10(%ebp),%eax
40be2b:	50                   	push   %eax
40be2c:	51                   	push   %ecx
40be2d:	52                   	push   %edx
40be2e:	6a 2b                	push   $0x2b
40be30:	ff 75 0c             	push   0xc(%ebp)
40be33:	ff 75 08             	push   0x8(%ebp)
40be36:	ff 15 68 c4 42 00    	call   *0x42c468
40be3c:	83 c4 20             	add    $0x20,%esp
40be3f:	5d                   	pop    %ebp
40be40:	c2 10 00             	ret    $0x10
40be43:	6a 1c                	push   $0x1c
40be45:	b8 20 86 42 00       	mov    $0x428620,%eax
40be4a:	e8 82 c2 01 00       	call   0x4280d1
40be4f:	8b fa                	mov    %edx,%edi
40be51:	89 7d e8             	mov    %edi,-0x18(%ebp)
40be54:	8b d9                	mov    %ecx,%ebx
40be56:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40be59:	85 db                	test   %ebx,%ebx
40be5b:	0f 84 58 01 00 00    	je     0x40bfb9
40be61:	85 ff                	test   %edi,%edi
40be63:	0f 84 50 01 00 00    	je     0x40bfb9
40be69:	8d 51 01             	lea    0x1(%ecx),%edx
40be6c:	8a 01                	mov    (%ecx),%al
40be6e:	41                   	inc    %ecx
40be6f:	84 c0                	test   %al,%al
40be71:	75 f9                	jne    0x40be6c
40be73:	33 f6                	xor    %esi,%esi
40be75:	2b ca                	sub    %edx,%ecx
40be77:	56                   	push   %esi
40be78:	56                   	push   %esi
40be79:	8d 41 01             	lea    0x1(%ecx),%eax
40be7c:	50                   	push   %eax
40be7d:	53                   	push   %ebx
40be7e:	56                   	push   %esi
40be7f:	56                   	push   %esi
40be80:	89 45 dc             	mov    %eax,-0x24(%ebp)
40be83:	ff 15 a0 c2 42 00    	call   *0x42c2a0
40be89:	8b c8                	mov    %eax,%ecx
40be8b:	85 c9                	test   %ecx,%ecx
40be8d:	75 36                	jne    0x40bec5
40be8f:	ff 15 18 c2 42 00    	call   *0x42c218
40be95:	8b c8                	mov    %eax,%ecx
40be97:	e8 0e f7 ff ff       	call   0x40b5aa
40be9c:	8b f0                	mov    %eax,%esi
40be9e:	a1 00 b0 42 00       	mov    0x42b000,%eax
40bea3:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40bea8:	0f 84 07 01 00 00    	je     0x40bfb5
40beae:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40beb2:	0f 84 fd 00 00 00    	je     0x40bfb5
40beb8:	ff 70 14             	push   0x14(%eax)
40bebb:	ff 70 10             	push   0x10(%eax)
40bebe:	6a 0b                	push   $0xb
40bec0:	e9 e5 00 00 00       	jmp    0x40bfaa
40bec5:	8d 41 01             	lea    0x1(%ecx),%eax
40bec8:	89 45 ec             	mov    %eax,-0x14(%ebp)
40becb:	3b c1                	cmp    %ecx,%eax
40becd:	0f 82 b8 00 00 00    	jb     0x40bf8b
40bed3:	33 c9                	xor    %ecx,%ecx
40bed5:	89 45 e0             	mov    %eax,-0x20(%ebp)
40bed8:	6a 02                	push   $0x2
40beda:	5a                   	pop    %edx
40bedb:	f7 e2                	mul    %edx
40bedd:	89 37                	mov    %esi,(%edi)
40bedf:	89 75 fc             	mov    %esi,-0x4(%ebp)
40bee2:	0f 90 c1             	seto   %cl
40bee5:	f7 d9                	neg    %ecx
40bee7:	0b c8                	or     %eax,%ecx
40bee9:	51                   	push   %ecx
40beea:	e8 23 be 01 00       	call   0x427d12
40beef:	89 07                	mov    %eax,(%edi)
40bef1:	8b 45 ec             	mov    -0x14(%ebp),%eax
40bef4:	59                   	pop    %ecx
40bef5:	eb 11                	jmp    0x40bf08
40bef7:	b8 fd be 40 00       	mov    $0x40befd,%eax
40befc:	c3                   	ret
40befd:	8b 7d e8             	mov    -0x18(%ebp),%edi
40bf00:	33 f6                	xor    %esi,%esi
40bf02:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40bf05:	8b 45 e0             	mov    -0x20(%ebp),%eax
40bf08:	83 3f 00             	cmpl   $0x0,(%edi)
40bf0b:	75 2c                	jne    0x40bf39
40bf0d:	a1 00 b0 42 00       	mov    0x42b000,%eax
40bf12:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40bf17:	74 19                	je     0x40bf32
40bf19:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40bf1d:	74 13                	je     0x40bf32
40bf1f:	ff 70 14             	push   0x14(%eax)
40bf22:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40bf27:	ff 70 10             	push   0x10(%eax)
40bf2a:	6a 0d                	push   $0xd
40bf2c:	59                   	pop    %ecx
40bf2d:	e8 7e b4 ff ff       	call   0x4073b0
40bf32:	be 0e 00 07 80       	mov    $0x8007000e,%esi
40bf37:	eb 7c                	jmp    0x40bfb5
40bf39:	50                   	push   %eax
40bf3a:	ff 37                	push   (%edi)
40bf3c:	ff 75 dc             	push   -0x24(%ebp)
40bf3f:	53                   	push   %ebx
40bf40:	56                   	push   %esi
40bf41:	56                   	push   %esi
40bf42:	ff 15 a0 c2 42 00    	call   *0x42c2a0
40bf48:	85 c0                	test   %eax,%eax
40bf4a:	75 69                	jne    0x40bfb5
40bf4c:	a1 00 b0 42 00       	mov    0x42b000,%eax
40bf51:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40bf56:	74 19                	je     0x40bf71
40bf58:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40bf5c:	74 13                	je     0x40bf71
40bf5e:	ff 70 14             	push   0x14(%eax)
40bf61:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40bf66:	ff 70 10             	push   0x10(%eax)
40bf69:	6a 0e                	push   $0xe
40bf6b:	59                   	pop    %ecx
40bf6c:	e8 3f b4 ff ff       	call   0x4073b0
40bf71:	ff 15 18 c2 42 00    	call   *0x42c218
40bf77:	8b c8                	mov    %eax,%ecx
40bf79:	e8 2c f6 ff ff       	call   0x40b5aa
40bf7e:	8b f0                	mov    %eax,%esi
40bf80:	85 f6                	test   %esi,%esi
40bf82:	78 31                	js     0x40bfb5
40bf84:	be 05 40 00 80       	mov    $0x80004005,%esi
40bf89:	eb 2a                	jmp    0x40bfb5
40bf8b:	be 16 02 07 80       	mov    $0x80070216,%esi
40bf90:	a1 00 b0 42 00       	mov    0x42b000,%eax
40bf95:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40bf9a:	74 19                	je     0x40bfb5
40bf9c:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40bfa0:	74 13                	je     0x40bfb5
40bfa2:	ff 70 14             	push   0x14(%eax)
40bfa5:	ff 70 10             	push   0x10(%eax)
40bfa8:	6a 0c                	push   $0xc
40bfaa:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40bfaf:	59                   	pop    %ecx
40bfb0:	e8 fb b3 ff ff       	call   0x4073b0
40bfb5:	8b c6                	mov    %esi,%eax
40bfb7:	eb 2a                	jmp    0x40bfe3
40bfb9:	a1 00 b0 42 00       	mov    0x42b000,%eax
40bfbe:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40bfc3:	74 19                	je     0x40bfde