43abc7:	e8 84 d2 00 00       	call   0x447e50
43abcc:	8b f0                	mov    %eax,%esi
43abce:	89 74 24 28          	mov    %esi,0x28(%esp)
43abd2:	85 f6                	test   %esi,%esi
43abd4:	0f 84 a5 04 00 00    	je     0x43b07f
43abda:	83 7c 24 30 00       	cmpl   $0x0,0x30(%esp)
43abdf:	74 13                	je     0x43abf4
43abe1:	8d 44 24 48          	lea    0x48(%esp),%eax
43abe5:	8b cb                	mov    %ebx,%ecx
43abe7:	50                   	push   %eax
43abe8:	6a 01                	push   $0x1
43abea:	68 2c 29 41 00       	push   $0x41292c
43abef:	e8 ec 0c 00 00       	call   0x43b8e0
43abf4:	8b 03                	mov    (%ebx),%eax
43abf6:	8d 8c 24 a0 00 00 00 	lea    0xa0(%esp),%ecx
43abfd:	51                   	push   %ecx
43abfe:	57                   	push   %edi
43abff:	8b 70 1c             	mov    0x1c(%eax),%esi
43ac02:	8b ce                	mov    %esi,%ecx
43ac04:	ff 15 84 23 45 00    	call   *0x452384
43ac0a:	8b cb                	mov    %ebx,%ecx
43ac0c:	ff d6                	call   *%esi
43ac0e:	8b f8                	mov    %eax,%edi
43ac10:	85 ff                	test   %edi,%edi
43ac12:	0f 88 a8 04 00 00    	js     0x43b0c0
43ac18:	8b 44 24 30          	mov    0x30(%esp),%eax
43ac1c:	f7 d8                	neg    %eax
43ac1e:	1b c0                	sbb    %eax,%eax
43ac20:	33 d2                	xor    %edx,%edx
43ac22:	25 00 00 00 04       	and    $0x4000000,%eax
43ac27:	39 54 24 18          	cmp    %edx,0x18(%esp)
43ac2b:	89 44 24 40          	mov    %eax,0x40(%esp)
43ac2f:	0f 95 c2             	setne  %dl
43ac32:	42                   	inc    %edx
43ac33:	89 54 24 18          	mov    %edx,0x18(%esp)
43ac37:	eb 07                	jmp    0x43ac40
43ac39:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
43ac40:	33 ff                	xor    %edi,%edi
43ac42:	89 7c 24 24          	mov    %edi,0x24(%esp)
43ac46:	39 7c 24 44          	cmp    %edi,0x44(%esp)
43ac4a:	75 0b                	jne    0x43ac57
43ac4c:	b9 80 00 00 c0       	mov    $0xc0000080,%ecx
43ac51:	39 7c 24 3c          	cmp    %edi,0x3c(%esp)
43ac55:	74 05                	je     0x43ac5c
43ac57:	b9 80 00 00 40       	mov    $0x40000080,%ecx
43ac5c:	6a 00                	push   $0x0
43ac5e:	0b c1                	or     %ecx,%eax
43ac60:	0b 44 24 24          	or     0x24(%esp),%eax
43ac64:	50                   	push   %eax
43ac65:	52                   	push   %edx
43ac66:	6a 00                	push   $0x0
43ac68:	6a 00                	push   $0x0
43ac6a:	68 00 00 01 c0       	push   $0xc0010000
43ac6f:	8d 84 24 b8 00 00 00 	lea    0xb8(%esp),%eax
43ac76:	50                   	push   %eax
43ac77:	ff 15 ec 20 45 00    	call   *0x4520ec
43ac7d:	8b d8                	mov    %eax,%ebx
43ac7f:	83 fb ff             	cmp    $0xffffffff,%ebx
43ac82:	75 24                	jne    0x43aca8
43ac84:	ff 15 6c 20 45 00    	call   *0x45206c
43ac8a:	8b 7c 24 10          	mov    0x10(%esp),%edi
43ac8e:	8b c8                	mov    %eax,%ecx
43ac90:	89 4c 24 24          	mov    %ecx,0x24(%esp)
43ac94:	51                   	push   %ecx
43ac95:	8b 07                	mov    (%edi),%eax
43ac97:	8b 70 10             	mov    0x10(%eax),%esi
43ac9a:	8b ce                	mov    %esi,%ecx
43ac9c:	ff 15 84 23 45 00    	call   *0x452384
43aca2:	8b cf                	mov    %edi,%ecx
43aca4:	ff d6                	call   *%esi
43aca6:	8b f8                	mov    %eax,%edi
43aca8:	57                   	push   %edi
43aca9:	8d 4c 24 54          	lea    0x54(%esp),%ecx
43acad:	e8 be dc ff ff       	call   0x438970
43acb2:	8b 54 24 18          	mov    0x18(%esp),%edx
43acb6:	85 c0                	test   %eax,%eax
43acb8:	8b 44 24 40          	mov    0x40(%esp),%eax
43acbc:	75 82                	jne    0x43ac40
43acbe:	85 ff                	test   %edi,%edi
43acc0:	0f 88 5b 03 00 00    	js     0x43b021
43acc6:	6a 02                	push   $0x2
43acc8:	6a 02                	push   $0x2
43acca:	53                   	push   %ebx
43accb:	ff 15 0c 21 45 00    	call   *0x45210c
43acd1:	8d 44 24 6c          	lea    0x6c(%esp),%eax
43acd5:	50                   	push   %eax
43acd6:	53                   	push   %ebx
43acd7:	ff 15 98 20 45 00    	call   *0x452098
43acdd:	85 c0                	test   %eax,%eax
43acdf:	75 2c                	jne    0x43ad0d
43ace1:	ff 15 6c 20 45 00    	call   *0x45206c
43ace7:	8b 7c 24 10          	mov    0x10(%esp),%edi
43aceb:	8b c8                	mov    %eax,%ecx
43aced:	89 4c 24 24          	mov    %ecx,0x24(%esp)
43acf1:	51                   	push   %ecx
43acf2:	8b 07                	mov    (%edi),%eax
43acf4:	8b 70 10             	mov    0x10(%eax),%esi
43acf7:	8b ce                	mov    %esi,%ecx
43acf9:	ff 15 84 23 45 00    	call   *0x452384
43acff:	8b cf                	mov    %edi,%ecx
43ad01:	ff d6                	call   *%esi
43ad03:	8b f8                	mov    %eax,%edi
43ad05:	85 ff                	test   %edi,%edi
43ad07:	0f 88 14 03 00 00    	js     0x43b021
43ad0d:	8b 8c 24 8c 00 00 00 	mov    0x8c(%esp),%ecx
43ad14:	8d 94 24 a0 00 00 00 	lea    0xa0(%esp),%edx
43ad1b:	8b 74 24 10          	mov    0x10(%esp),%esi
43ad1f:	33 c0                	xor    %eax,%eax
43ad21:	03 84 24 90 00 00 00 	add    0x90(%esp),%eax
43ad28:	89 44 24 50          	mov    %eax,0x50(%esp)
43ad2c:	8b 44 24 6c          	mov    0x6c(%esp),%eax
43ad30:	83 d1 00             	adc    $0x0,%ecx
43ad33:	c1 e8 0b             	shr    $0xb,%eax
43ad36:	83 e0 01             	and    $0x1,%eax
43ad39:	89 4c 24 3c          	mov    %ecx,0x3c(%esp)
43ad3d:	89 44 24 40          	mov    %eax,0x40(%esp)
43ad41:	8b ce                	mov    %esi,%ecx
43ad43:	8d 44 24 18          	lea    0x18(%esp),%eax
43ad47:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
43ad4e:	00
43ad4f:	50                   	push   %eax
43ad50:	e8 8b 23 00 00       	call   0x43d0e0
43ad55:	8b f8                	mov    %eax,%edi
43ad57:	85 ff                	test   %edi,%edi
43ad59:	0f 88 e4 02 00 00    	js     0x43b043
43ad5f:	8b 44 24 18          	mov    0x18(%esp),%eax
43ad63:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
43ad67:	89 44 24 1c          	mov    %eax,0x1c(%esp)
43ad6b:	8b 06                	mov    (%esi),%eax
43ad6d:	51                   	push   %ecx
43ad6e:	8d 8c 24 a4 00 00 00 	lea    0xa4(%esp),%ecx
43ad75:	51                   	push   %ecx
43ad76:	8b 70 08             	mov    0x8(%eax),%esi
43ad79:	8b ce                	mov    %esi,%ecx
43ad7b:	ff 15 84 23 45 00    	call   *0x452384
43ad81:	8b 4c 24 18          	mov    0x18(%esp),%ecx
43ad85:	ff d6                	call   *%esi
43ad87:	8b f8                	mov    %eax,%edi
43ad89:	85 ff                	test   %edi,%edi
43ad8b:	0f 88 b2 02 00 00    	js     0x43b043
43ad91:	8b 44 24 2c          	mov    0x2c(%esp),%eax
43ad95:	3d 00 10 00 00       	cmp    $0x1000,%eax
43ad9a:	76 09                	jbe    0x43ada5
43ad9c:	b8 00 10 00 00       	mov    $0x1000,%eax
43ada1:	89 44 24 2c          	mov    %eax,0x2c(%esp)
43ada5:	f7 44 24 20 00 00 00 	testl  $0x20000000,0x20(%esp)
43adac:	20
43adad:	8b c8                	mov    %eax,%ecx
43adaf:	75 05                	jne    0x43adb6
43adb1:	b9 01 00 00 00       	mov    $0x1,%ecx
43adb6:	83 7c 24 40 00       	cmpl   $0x0,0x40(%esp)
43adbb:	0f 84 9a 01 00 00    	je     0x43af5b
43adc1:	83 7c 24 30 00       	cmpl   $0x0,0x30(%esp)
43adc6:	0f 85 8f 01 00 00    	jne    0x43af5b
43adcc:	33 c0                	xor    %eax,%eax
43adce:	50                   	push   %eax
43adcf:	50                   	push   %eax
43add0:	50                   	push   %eax
43add1:	50                   	push   %eax
43add2:	66 89 44 24 24       	mov    %ax,0x24(%esp)
43add7:	89 44 24 68          	mov    %eax,0x68(%esp)
43addb:	89 44 24 6c          	mov    %eax,0x6c(%esp)
43addf:	89 44 24 70          	mov    %eax,0x70(%esp)
43ade3:	89 44 24 74          	mov    %eax,0x74(%esp)
43ade7:	89 44 24 78          	mov    %eax,0x78(%esp)
43adeb:	89 44 24 30          	mov    %eax,0x30(%esp)
43adef:	ff 15 2c 22 45 00    	call   *0x45222c
43adf5:	89 44 24 38          	mov    %eax,0x38(%esp)
43adf9:	85 c0                	test   %eax,%eax
43adfb:	0f 84 14 01 00 00    	je     0x43af15
43ae01:	89 44 24 68          	mov    %eax,0x68(%esp)
43ae05:	8d 44 24 58          	lea    0x58(%esp),%eax
43ae09:	50                   	push   %eax
43ae0a:	8d 44 24 24          	lea    0x24(%esp),%eax
43ae0e:	50                   	push   %eax
43ae0f:	6a 00                	push   $0x0
43ae11:	6a 00                	push   $0x0
43ae13:	6a 02                	push   $0x2
43ae15:	8d 44 24 28          	lea    0x28(%esp),%eax
43ae19:	50                   	push   %eax
43ae1a:	68 40 c0 09 00       	push   $0x9c040
43ae1f:	53                   	push   %ebx
43ae20:	ff 15 44 21 45 00    	call   *0x452144
43ae26:	85 c0                	test   %eax,%eax
43ae28:	75 0d                	jne    0x43ae37
43ae2a:	ff 15 6c 20 45 00    	call   *0x45206c
43ae30:	3d e5 03 00 00       	cmp    $0x3e5,%eax
43ae35:	75 17                	jne    0x43ae4e
43ae37:	6a 01                	push   $0x1
43ae39:	8d 44 24 24          	lea    0x24(%esp),%eax
43ae3d:	50                   	push   %eax
43ae3e:	8d 44 24 60          	lea    0x60(%esp),%eax
43ae42:	50                   	push   %eax
43ae43:	53                   	push   %ebx
43ae44:	ff 15 3c 21 45 00    	call   *0x45213c
43ae4a:	85 c0                	test   %eax,%eax
43ae4c:	75 2c                	jne    0x43ae7a
43ae4e:	ff 15 6c 20 45 00    	call   *0x45206c
43ae54:	8b 7c 24 10          	mov    0x10(%esp),%edi
43ae58:	8b c8                	mov    %eax,%ecx
43ae5a:	89 4c 24 24          	mov    %ecx,0x24(%esp)
43ae5e:	51                   	push   %ecx
43ae5f:	8b 07                	mov    (%edi),%eax
43ae61:	8b 70 10             	mov    0x10(%eax),%esi
43ae64:	8b ce                	mov    %esi,%ecx
43ae66:	ff 15 84 23 45 00    	call   *0x452384
43ae6c:	8b cf                	mov    %edi,%ecx
43ae6e:	ff d6                	call   *%esi
43ae70:	8b f8                	mov    %eax,%edi
43ae72:	85 ff                	test   %edi,%edi
43ae74:	0f 88 a7 01 00 00    	js     0x43b021
43ae7a:	6a 00                	push   $0x0
43ae7c:	6a 02                	push   $0x2
43ae7e:	53                   	push   %ebx
43ae7f:	ff 15 0c 21 45 00    	call   *0x45210c
43ae85:	53                   	push   %ebx
43ae86:	ff 15 10 21 45 00    	call   *0x452110
43ae8c:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
43ae90:	e8 bb 25 00 00       	call   0x43d450
43ae95:	8b 7c 24 28          	mov    0x28(%esp),%edi
43ae99:	6a 01                	push   $0x1
43ae9b:	8b 07                	mov    (%edi),%eax
43ae9d:	8b 30                	mov    (%eax),%esi
43ae9f:	8b ce                	mov    %esi,%ecx
43aea1:	ff 15 84 23 45 00    	call   *0x452384
43aea7:	8b cf                	mov    %edi,%ecx
43aea9:	ff d6                	call   *%esi
43aeab:	8b 44 24 38          	mov    0x38(%esp),%eax
43aeaf:	50                   	push   %eax
43aeb0:	ff 15 10 21 45 00    	call   *0x452110
43aeb6:	8b 44 24 34          	mov    0x34(%esp),%eax
43aeba:	8b 5c 24 10          	mov    0x10(%esp),%ebx
43aebe:	50                   	push   %eax
43aebf:	8b 44 24 48          	mov    0x48(%esp),%eax
43aec3:	f7 d8                	neg    %eax
43aec5:	8b 33                	mov    (%ebx),%esi
43aec7:	1b c0                	sbb    %eax,%eax
43aec9:	83 e0 04             	and    $0x4,%eax
43aecc:	0b 44 24 50          	or     0x50(%esp),%eax
43aed0:	8b 76 60             	mov    0x60(%esi),%esi
43aed3:	8b ce                	mov    %esi,%ecx
43aed5:	50                   	push   %eax
43aed6:	8d 84 24 a8 00 00 00 	lea    0xa8(%esp),%eax
43aedd:	50                   	push   %eax
43aede:	ff 15 84 23 45 00    	call   *0x452384
43aee4:	8b cb                	mov    %ebx,%ecx
43aee6:	ff d6                	call   *%esi
43aee8:	8b f0                	mov    %eax,%esi
43aeea:	85 f6                	test   %esi,%esi
43aeec:	79 0e                	jns    0x43aefc
43aeee:	8d 84 24 a0 00 00 00 	lea    0xa0(%esp),%eax
43aef5:	50                   	push   %eax
43aef6:	ff 15 d4 20 45 00    	call   *0x4520d4
43aefc:	8b c6                	mov    %esi,%eax
43aefe:	5f                   	pop    %edi
43aeff:	5e                   	pop    %esi
43af00:	5b                   	pop    %ebx
43af01:	8b 8c 24 a0 02 00 00 	mov    0x2a0(%esp),%ecx
43af08:	33 cc                	xor    %esp,%ecx
43af0a:	e8 41 20 01 00       	call   0x44cf50
43af0f:	8b e5                	mov    %ebp,%esp
43af11:	5d                   	pop    %ebp
43af12:	c2 0c 00             	ret    $0xc
43af15:	e8 d6 2d 00 00       	call   0x43dcf0
43af1a:	83 c0 10             	add    $0x10,%eax
43af1d:	74 0a                	je     0x43af29
43af1f:	e8 cc 2d 00 00       	call   0x43dcf0
43af24:	83 c0 14             	add    $0x14,%eax
43af27:	eb 02                	jmp    0x43af2b
43af29:	33 c0                	xor    %eax,%eax
43af2b:	81 3d 30 1a 45 00 0d 	cmpl   $0xfffffc0d,0x451a30
43af32:	fc ff ff
43af35:	c7 00 c8 28 41 00    	movl   $0x4128c8,(%eax)
43af3b:	c7 40 04 14 07 00 00 	movl   $0x714,0x4(%eax)
43af42:	c7 40 08 0d fc ff ff 	movl   $0xfffffc0d,0x8(%eax)
43af49:	75 06                	jne    0x43af51
43af4b:	ff 15 58 20 45 00    	call   *0x452058
43af51:	bf 0d fc ff ff       	mov    $0xfffffc0d,%edi
43af56:	e9 e8 00 00 00       	jmp    0x43b043
43af5b:	f7 44 24 6c 00 02 00 	testl  $0x200,0x6c(%esp)
43af62:	00
43af63:	8b 54 24 14          	mov    0x14(%esp),%edx
43af67:	74 07                	je     0x43af70
43af69:	83 ca 08             	or     $0x8,%edx
43af6c:	89 54 24 14          	mov    %edx,0x14(%esp)
43af70:	50                   	push   %eax
43af71:	51                   	push   %ecx
43af72:	8b 4c 24 24          	mov    0x24(%esp),%ecx
43af76:	8d 84 24 a8 00 00 00 	lea    0xa8(%esp),%eax
43af7d:	8b 74 24 30          	mov    0x30(%esp),%esi
43af81:	52                   	push   %edx
43af82:	ff 74 24 48          	push   0x48(%esp)
43af86:	ff 74 24 60          	push   0x60(%esp)
43af8a:	53                   	push   %ebx
43af8b:	50                   	push   %eax
43af8c:	8b 44 24 2c          	mov    0x2c(%esp),%eax
43af90:	ff 70 04             	push   0x4(%eax)
43af93:	51                   	push   %ecx
43af94:	50                   	push   %eax
43af95:	8b ce                	mov    %esi,%ecx
43af97:	e8 54 d1 00 00       	call   0x4480f0
43af9c:	8b f8                	mov    %eax,%edi
43af9e:	85 ff                	test   %edi,%edi
43afa0:	0f 88 9d 00 00 00    	js     0x43b043
43afa6:	83 3d 68 1a 45 00 00 	cmpl   $0x0,0x451a68
43afad:	74 61                	je     0x43b010
43afaf:	83 3d 6c 1a 45 00 00 	cmpl   $0x0,0x451a6c
43afb6:	75 58                	jne    0x43b010
43afb8:	83 3d a4 14 45 00 00 	cmpl   $0x0,0x4514a4
43afbf:	74 4f                	je     0x43b010
43afc1:	83 3d 64 1a 45 00 00 	cmpl   $0x0,0x451a64
43afc8:	74 0e                	je     0x43afd8
43afca:	ff 15 b4 21 45 00    	call   *0x4521b4
43afd0:	3b 05 64 1a 45 00    	cmp    0x451a64,%eax
43afd6:	75 38                	jne    0x43b010
43afd8:	e8 53 f1 fe ff       	call   0x42a130
43afdd:	85 c0                	test   %eax,%eax
43afdf:	74 03                	je     0x43afe4
43afe1:	ff 40 18             	incl   0x18(%eax)
43afe4:	53                   	push   %ebx
43afe5:	56                   	push   %esi
43afe6:	ff 74 24 1c          	push   0x1c(%esp)
43afea:	8d 84 24 ac 00 00 00 	lea    0xac(%esp),%eax
43aff1:	50                   	push   %eax
43aff2:	68 5c 29 41 00       	push   $0x41295c
43aff7:	e8 d4 fb fe ff       	call   0x42abd0
43affc:	83 c4 14             	add    $0x14,%esp
43afff:	8b d0                	mov    %eax,%edx
43b001:	b9 34 00 00 00       	mov    $0x34,%ecx
43b006:	e8 d5 f9 fe ff       	call   0x42a9e0
43b00b:	e8 10 fa fe ff       	call   0x42aa20
43b010:	8b 44 24 34          	mov    0x34(%esp),%eax
43b014:	83 cb ff             	or     $0xffffffff,%ebx
43b017:	c7 44 24 1c 00 00 00 	movl   $0x0,0x1c(%esp)
43b01e:	00
43b01f:	89 30                	mov    %esi,(%eax)
43b021:	ff 74 24 24          	push   0x24(%esp)
43b025:	8b 74 24 14          	mov    0x14(%esp),%esi
43b029:	8d 84 24 a4 00 00 00 	lea    0xa4(%esp),%eax
43b030:	57                   	push   %edi
43b031:	6a 00                	push   $0x0
43b033:	50                   	push   %eax
43b034:	8b ce                	mov    %esi,%ecx
43b036:	e8 a5 da ff ff       	call   0x438ae0
43b03b:	85 ff                	test   %edi,%edi
43b03d:	0f 89 a5 00 00 00    	jns    0x43b0e8
43b043:	83 fb ff             	cmp    $0xffffffff,%ebx
43b046:	74 20                	je     0x43b068
43b048:	6a 00                	push   $0x0
43b04a:	6a 02                	push   $0x2