99c9ca:	56                   	push   %esi
99c9cb:	57                   	push   %edi
99c9cc:	89 08                	mov    %ecx,(%eax)
99c9ce:	89 48 04             	mov    %ecx,0x4(%eax)
99c9d1:	8b 03                	mov    (%ebx),%eax
99c9d3:	51                   	push   %ecx
99c9d4:	51                   	push   %ecx
99c9d5:	89 4d d0             	mov    %ecx,-0x30(%ebp)
99c9d8:	8b b0 1c 01 00 00    	mov    0x11c(%eax),%esi
99c9de:	8b ce                	mov    %esi,%ecx
99c9e0:	68 18 04 00 00       	push   $0x418
99c9e5:	e8 7b fc a8 ff       	call   0x42c665
99c9ea:	8b cb                	mov    %ebx,%ecx
99c9ec:	ff d6                	call   *%esi
99c9ee:	8b f8                	mov    %eax,%edi
99c9f0:	89 7d c4             	mov    %edi,-0x3c(%ebp)
99c9f3:	6a 14                	push   $0x14
99c9f5:	5a                   	pop    %edx
99c9f6:	85 ff                	test   %edi,%edi
99c9f8:	74 40                	je     0x99ca3a
99c9fa:	33 c9                	xor    %ecx,%ecx
99c9fc:	f7 e2                	mul    %edx
99c9fe:	0f 90 c1             	seto   %cl
99ca01:	f7 d9                	neg    %ecx
99ca03:	0b c8                	or     %eax,%ecx
99ca05:	51                   	push   %ecx
99ca06:	e8 8c 8d a9 ff       	call   0x435797
99ca0b:	83 65 cc 00          	andl   $0x0,-0x34(%ebp)
99ca0f:	8b f0                	mov    %eax,%esi
99ca11:	89 75 d0             	mov    %esi,-0x30(%ebp)
99ca14:	59                   	pop    %ecx
99ca15:	85 ff                	test   %edi,%edi
99ca17:	0f 8e 26 03 00 00    	jle    0x99cd43
99ca1d:	8b 75 cc             	mov    -0x34(%ebp),%esi
99ca20:	89 45 d4             	mov    %eax,-0x2c(%ebp)
99ca23:	50                   	push   %eax
99ca24:	56                   	push   %esi
99ca25:	8b cb                	mov    %ebx,%ecx
99ca27:	e8 01 8c a6 ff       	call   0x40562d
99ca2c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
99ca2f:	46                   	inc    %esi
99ca30:	83 c0 14             	add    $0x14,%eax
99ca33:	89 45 d4             	mov    %eax,-0x2c(%ebp)
99ca36:	3b f7                	cmp    %edi,%esi
99ca38:	7c e9                	jl     0x99ca23
99ca3a:	8b 75 d0             	mov    -0x30(%ebp),%esi
99ca3d:	85 ff                	test   %edi,%edi
99ca3f:	0f 8e fe 02 00 00    	jle    0x99cd43
99ca45:	8b 8b b0 00 00 00    	mov    0xb0(%ebx),%ecx
99ca4b:	f6 c1 02             	test   $0x2,%cl
99ca4e:	0f 85 b2 00 00 00    	jne    0x99cb06
99ca54:	8b 45 0c             	mov    0xc(%ebp),%eax
99ca57:	f6 c1 04             	test   $0x4,%cl
99ca5a:	0f 84 8c 00 00 00    	je     0x99caec
99ca60:	a8 04                	test   $0x4,%al
99ca62:	74 0d                	je     0x99ca71
99ca64:	6a 00                	push   $0x0
99ca66:	ff b3 9c 00 00 00    	push   0x9c(%ebx)
99ca6c:	e9 8c 00 00 00       	jmp    0x99cafd
99ca71:	a8 08                	test   $0x8,%al
99ca73:	74 09                	je     0x99ca7e
99ca75:	6a 00                	push   $0x0
99ca77:	68 ff 7f 00 00       	push   $0x7fff
99ca7c:	eb 7f                	jmp    0x99cafd
99ca7e:	a8 10                	test   $0x10,%al
99ca80:	74 06                	je     0x99ca88
99ca82:	6a 00                	push   $0x0
99ca84:	6a 00                	push   $0x0
99ca86:	eb 75                	jmp    0x99cafd
99ca88:	83 7d 10 ff          	cmpl   $0xffffffff,0x10(%ebp)
99ca8c:	74 55                	je     0x99cae3
99ca8e:	33 c0                	xor    %eax,%eax
99ca90:	89 45 dc             	mov    %eax,-0x24(%ebp)
99ca93:	89 45 e0             	mov    %eax,-0x20(%ebp)
99ca96:	89 45 e4             	mov    %eax,-0x1c(%ebp)
99ca99:	89 45 e8             	mov    %eax,-0x18(%ebp)
99ca9c:	8d 45 dc             	lea    -0x24(%ebp),%eax
99ca9f:	50                   	push   %eax
99caa0:	ff 15 50 40 d8 00    	call   *0xd84050
99caa6:	8b 33                	mov    (%ebx),%esi
99caa8:	8b 45 0c             	mov    0xc(%ebp),%eax
99caab:	83 e0 02             	and    $0x2,%eax
99caae:	50                   	push   %eax
99caaf:	8b b6 70 01 00 00    	mov    0x170(%esi),%esi
99cab5:	8d 45 dc             	lea    -0x24(%ebp),%eax
99cab8:	50                   	push   %eax
99cab9:	8b ce                	mov    %esi,%ecx
99cabb:	e8 a5 fb a8 ff       	call   0x42c665
99cac0:	8b cb                	mov    %ebx,%ecx
99cac2:	ff d6                	call   *%esi
99cac4:	8b 4d 0c             	mov    0xc(%ebp),%ecx
99cac7:	83 e1 20             	and    $0x20,%ecx
99caca:	74 08                	je     0x99cad4
99cacc:	8b 45 e8             	mov    -0x18(%ebp),%eax
99cacf:	2b 45 e0             	sub    -0x20(%ebp),%eax
99cad2:	eb 06                	jmp    0x99cada
99cad4:	8b 45 e4             	mov    -0x1c(%ebp),%eax
99cad7:	2b 45 dc             	sub    -0x24(%ebp),%eax
99cada:	03 45 10             	add    0x10(%ebp),%eax
99cadd:	8b 75 d0             	mov    -0x30(%ebp),%esi
99cae0:	51                   	push   %ecx
99cae1:	eb 19                	jmp    0x99cafc
99cae3:	f6 c1 01             	test   $0x1,%cl
99cae6:	0f 85 78 ff ff ff    	jne    0x99ca64
99caec:	24 02                	and    $0x2,%al
99caee:	0f b6 c0             	movzbl %al,%eax
99caf1:	f7 d8                	neg    %eax
99caf3:	6a 00                	push   $0x0
99caf5:	1b c0                	sbb    %eax,%eax
99caf7:	25 ff 7f 00 00       	and    $0x7fff,%eax
99cafc:	50                   	push   %eax
99cafd:	57                   	push   %edi
99cafe:	56                   	push   %esi
99caff:	8b cb                	mov    %ebx,%ecx
99cb01:	e8 07 ab a6 ff       	call   0x40760d
99cb06:	57                   	push   %edi
99cb07:	56                   	push   %esi
99cb08:	8d 45 e4             	lea    -0x1c(%ebp),%eax
99cb0b:	8b cb                	mov    %ebx,%ecx
99cb0d:	50                   	push   %eax
99cb0e:	e8 19 d9 a9 ff       	call   0x43a42c
99cb13:	f6 45 0c 40          	testb  $0x40,0xc(%ebp)
99cb17:	8b c8                	mov    %eax,%ecx
99cb19:	8b 55 bc             	mov    -0x44(%ebp),%edx
99cb1c:	8b 01                	mov    (%ecx),%eax
99cb1e:	89 02                	mov    %eax,(%edx)
99cb20:	8b 41 04             	mov    0x4(%ecx),%eax
99cb23:	89 42 04             	mov    %eax,0x4(%edx)
99cb26:	0f 84 10 02 00 00    	je     0x99cd3c
99cb2c:	8b 83 d4 00 00 00    	mov    0xd4(%ebx),%eax
99cb32:	33 f6                	xor    %esi,%esi
99cb34:	83 65 c8 00          	andl   $0x0,-0x38(%ebp)
99cb38:	21 b3 d4 00 00 00    	and    %esi,0xd4(%ebx)
99cb3e:	8b 4d d0             	mov    -0x30(%ebp),%ecx
99cb41:	89 75 d8             	mov    %esi,-0x28(%ebp)
99cb44:	89 45 e8             	mov    %eax,-0x18(%ebp)
99cb47:	85 ff                	test   %edi,%edi
99cb49:	0f 8e f8 00 00 00    	jle    0x99cc47
99cb4f:	8d 41 04             	lea    0x4(%ecx),%eax
99cb52:	89 7d d8             	mov    %edi,-0x28(%ebp)
99cb55:	89 45 d4             	mov    %eax,-0x2c(%ebp)
99cb58:	f6 40 05 01          	testb  $0x1,0x5(%eax)
99cb5c:	74 06                	je     0x99cb64
99cb5e:	83 38 00             	cmpl   $0x0,(%eax)
99cb61:	74 01                	je     0x99cb64
99cb63:	46                   	inc    %esi
99cb64:	83 c0 14             	add    $0x14,%eax
99cb67:	83 6d d8 01          	subl   $0x1,-0x28(%ebp)
99cb6b:	75 eb                	jne    0x99cb58
99cb6d:	89 75 d8             	mov    %esi,-0x28(%ebp)
99cb70:	85 f6                	test   %esi,%esi
99cb72:	0f 8e cf 00 00 00    	jle    0x99cc47
99cb78:	33 c9                	xor    %ecx,%ecx
99cb7a:	8b c6                	mov    %esi,%eax
99cb7c:	6a 18                	push   $0x18
99cb7e:	5a                   	pop    %edx
99cb7f:	f7 e2                	mul    %edx
99cb81:	0f 90 c1             	seto   %cl
99cb84:	f7 d9                	neg    %ecx
99cb86:	0b c8                	or     %eax,%ecx
99cb88:	51                   	push   %ecx
99cb89:	e8 09 8c a9 ff       	call   0x435797
99cb8e:	89 45 c8             	mov    %eax,-0x38(%ebp)
99cb91:	59                   	pop    %ecx
99cb92:	85 c0                	test   %eax,%eax
99cb94:	74 15                	je     0x99cbab
99cb96:	68 de df 41 00       	push   $0x41dfde
99cb9b:	56                   	push   %esi
99cb9c:	6a 18                	push   $0x18
99cb9e:	59                   	pop    %ecx
99cb9f:	51                   	push   %ecx
99cba0:	50                   	push   %eax
99cba1:	e8 69 87 a9 ff       	call   0x43530f
99cba6:	8b 45 c8             	mov    -0x38(%ebp),%eax
99cba9:	eb 05                	jmp    0x99cbb0
99cbab:	33 c0                	xor    %eax,%eax
99cbad:	89 45 c8             	mov    %eax,-0x38(%ebp)
99cbb0:	89 75 b4             	mov    %esi,-0x4c(%ebp)
99cbb3:	8d 50 08             	lea    0x8(%eax),%edx
99cbb6:	8b 45 d4             	mov    -0x2c(%ebp),%eax
99cbb9:	33 f6                	xor    %esi,%esi
99cbbb:	33 c9                	xor    %ecx,%ecx
99cbbd:	89 75 d8             	mov    %esi,-0x28(%ebp)
99cbc0:	89 4d cc             	mov    %ecx,-0x34(%ebp)
99cbc3:	89 55 b8             	mov    %edx,-0x48(%ebp)
99cbc6:	3b 75 b4             	cmp    -0x4c(%ebp),%esi
99cbc9:	7d 76                	jge    0x99cc41
99cbcb:	f6 40 05 01          	testb  $0x1,0x5(%eax)
99cbcf:	74 62                	je     0x99cc33
99cbd1:	83 38 00             	cmpl   $0x0,(%eax)
99cbd4:	74 5d                	je     0x99cc33
99cbd6:	89 4a f8             	mov    %ecx,-0x8(%edx)
99cbd9:	8b 00                	mov    (%eax),%eax
99cbdb:	89 42 fc             	mov    %eax,-0x4(%edx)
99cbde:	33 c0                	xor    %eax,%eax
99cbe0:	89 45 ec             	mov    %eax,-0x14(%ebp)
99cbe3:	8d 55 ec             	lea    -0x14(%ebp),%edx
99cbe6:	89 45 f0             	mov    %eax,-0x10(%ebp)
99cbe9:	89 45 f4             	mov    %eax,-0xc(%ebp)
99cbec:	89 45 f8             	mov    %eax,-0x8(%ebp)
99cbef:	8b 03                	mov    (%ebx),%eax
99cbf1:	52                   	push   %edx
99cbf2:	51                   	push   %ecx
99cbf3:	8b b0 ac 01 00 00    	mov    0x1ac(%eax),%esi
99cbf9:	8b ce                	mov    %esi,%ecx
99cbfb:	e8 65 fa a8 ff       	call   0x42c665
99cc00:	8b cb                	mov    %ebx,%ecx
99cc02:	ff d6                	call   *%esi
99cc04:	8d 45 ec             	lea    -0x14(%ebp),%eax
99cc07:	8b cb                	mov    %ebx,%ecx
99cc09:	50                   	push   %eax
99cc0a:	e8 9a 03 a7 ff       	call   0x40cfa9
99cc0f:	8b 55 b8             	mov    -0x48(%ebp),%edx
99cc12:	8d 75 ec             	lea    -0x14(%ebp),%esi
99cc15:	8b 4d cc             	mov    -0x34(%ebp),%ecx
99cc18:	8b fa                	mov    %edx,%edi
99cc1a:	6a 18                	push   $0x18
99cc1c:	58                   	pop    %eax
99cc1d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
99cc1e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
99cc1f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
99cc20:	a5                   	movsl  %ds:(%esi),%es:(%edi)
99cc21:	8b 75 d8             	mov    -0x28(%ebp),%esi
99cc24:	8b 7d c4             	mov    -0x3c(%ebp),%edi
99cc27:	46                   	inc    %esi
99cc28:	03 d0                	add    %eax,%edx
99cc2a:	89 75 d8             	mov    %esi,-0x28(%ebp)
99cc2d:	8b 45 d4             	mov    -0x2c(%ebp),%eax
99cc30:	89 55 b8             	mov    %edx,-0x48(%ebp)
99cc33:	41                   	inc    %ecx
99cc34:	83 c0 14             	add    $0x14,%eax
99cc37:	89 4d cc             	mov    %ecx,-0x34(%ebp)
99cc3a:	89 45 d4             	mov    %eax,-0x2c(%ebp)
99cc3d:	3b cf                	cmp    %edi,%ecx
99cc3f:	7c 85                	jl     0x99cbc6
99cc41:	8b 55 bc             	mov    -0x44(%ebp),%edx
99cc44:	8b 4d d0             	mov    -0x30(%ebp),%ecx
99cc47:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
99cc4d:	83 e0 05             	and    $0x5,%eax
99cc50:	3c 05                	cmp    $0x5,%al
99cc52:	75 08                	jne    0x99cc5c
99cc54:	8b 02                	mov    (%edx),%eax
99cc56:	89 83 9c 00 00 00    	mov    %eax,0x9c(%ebx)
99cc5c:	83 65 c4 00          	andl   $0x0,-0x3c(%ebp)
99cc60:	85 ff                	test   %edi,%edi
99cc62:	7e 22                	jle    0x99cc86
99cc64:	8b 75 c4             	mov    -0x3c(%ebp),%esi
99cc67:	8b c1                	mov    %ecx,%eax
99cc69:	89 45 cc             	mov    %eax,-0x34(%ebp)
99cc6c:	50                   	push   %eax
99cc6d:	56                   	push   %esi
99cc6e:	8b cb                	mov    %ebx,%ecx
99cc70:	e8 74 89 a9 ff       	call   0x4355e9
99cc75:	8b 45 cc             	mov    -0x34(%ebp),%eax
99cc78:	46                   	inc    %esi
99cc79:	83 c0 14             	add    $0x14,%eax
99cc7c:	89 45 cc             	mov    %eax,-0x34(%ebp)
99cc7f:	3b f7                	cmp    %edi,%esi
99cc81:	7c e9                	jl     0x99cc6c
99cc83:	8b 75 d8             	mov    -0x28(%ebp),%esi
99cc86:	85 f6                	test   %esi,%esi
99cc88:	0f 8e a2 00 00 00    	jle    0x99cd30
99cc8e:	8b 45 c8             	mov    -0x38(%ebp),%eax
99cc91:	83 c0 08             	add    $0x8,%eax
99cc94:	89 45 d4             	mov    %eax,-0x2c(%ebp)
99cc97:	ff 70 fc             	push   -0x4(%eax)
99cc9a:	8b cb                	mov    %ebx,%ecx
99cc9c:	e8 18 97 a8 ff       	call   0x4263b9
99cca1:	89 45 c4             	mov    %eax,-0x3c(%ebp)
99cca4:	85 c0                	test   %eax,%eax
99cca6:	74 68                	je     0x99cd10
99cca8:	33 c9                	xor    %ecx,%ecx
99ccaa:	89 4d ec             	mov    %ecx,-0x14(%ebp)
99ccad:	89 4d f0             	mov    %ecx,-0x10(%ebp)
99ccb0:	89 4d f4             	mov    %ecx,-0xc(%ebp)
99ccb3:	89 4d f8             	mov    %ecx,-0x8(%ebp)
99ccb6:	8d 4d ec             	lea    -0x14(%ebp),%ecx
99ccb9:	51                   	push   %ecx
99ccba:	ff 70 20             	push   0x20(%eax)
99ccbd:	ff 15 40 3e d8 00    	call   *0xd83e40
99ccc3:	8b 45 c0             	mov    -0x40(%ebp),%eax
99ccc6:	8d 55 ec             	lea    -0x14(%ebp),%edx
99ccc9:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
99cccc:	8b 7d ec             	mov    -0x14(%ebp),%edi
99cccf:	8b 5d f0             	mov    -0x10(%ebp),%ebx
99ccd2:	8b 00                	mov    (%eax),%eax
99ccd4:	2b 39                	sub    (%ecx),%edi
99ccd6:	2b 59 04             	sub    0x4(%ecx),%ebx
99ccd9:	52                   	push   %edx
99ccda:	ff 71 f8             	push   -0x8(%ecx)
99ccdd:	8b b0 ac 01 00 00    	mov    0x1ac(%eax),%esi
99cce3:	8b ce                	mov    %esi,%ecx
99cce5:	e8 7b f9 a8 ff       	call   0x42c665
99ccea:	8b 4d c0             	mov    -0x40(%ebp),%ecx
99cced:	ff d6                	call   *%esi
99ccef:	8b 45 f0             	mov    -0x10(%ebp),%eax
99ccf2:	33 d2                	xor    %edx,%edx
99ccf4:	8b 4d ec             	mov    -0x14(%ebp),%ecx
99ccf7:	03 c3                	add    %ebx,%eax
99ccf9:	6a 15                	push   $0x15
99ccfb:	52                   	push   %edx
99ccfc:	52                   	push   %edx
99ccfd:	03 cf                	add    %edi,%ecx
99ccff:	50                   	push   %eax
99cd00:	51                   	push   %ecx
99cd01:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
99cd04:	52                   	push   %edx
99cd05:	e8 e6 c2 a9 ff       	call   0x438ff0
99cd0a:	8b 5d c0             	mov    -0x40(%ebp),%ebx
99cd0d:	8b 75 d8             	mov    -0x28(%ebp),%esi
99cd10:	8b 45 d4             	mov    -0x2c(%ebp),%eax
99cd13:	6a 18                	push   $0x18
99cd15:	59                   	pop    %ecx
99cd16:	03 c1                	add    %ecx,%eax
99cd18:	83 ee 01             	sub    $0x1,%esi
99cd1b:	89 45 d4             	mov    %eax,-0x2c(%ebp)
99cd1e:	89 75 d8             	mov    %esi,-0x28(%ebp)
99cd21:	0f 85 70 ff ff ff    	jne    0x99cc97
99cd27:	ff 75 c8             	push   -0x38(%ebp)
99cd2a:	e8 e3 18 aa ff       	call   0x43e612
99cd2f:	59                   	pop    %ecx
99cd30:	8b 45 e8             	mov    -0x18(%ebp),%eax
99cd33:	8b 75 d0             	mov    -0x30(%ebp),%esi
99cd36:	89 83 d4 00 00 00    	mov    %eax,0xd4(%ebx)
99cd3c:	56                   	push   %esi
99cd3d:	e8 d0 18 aa ff       	call   0x43e612
99cd42:	59                   	pop    %ecx
99cd43:	33 f6                	xor    %esi,%esi
99cd45:	8d 45 ec             	lea    -0x14(%ebp),%eax
99cd48:	50                   	push   %eax
99cd49:	89 75 ec             	mov    %esi,-0x14(%ebp)
99cd4c:	89 75 f0             	mov    %esi,-0x10(%ebp)
99cd4f:	89 75 f4             	mov    %esi,-0xc(%ebp)
99cd52:	89 75 f8             	mov    %esi,-0x8(%ebp)
99cd55:	ff 15 50 40 d8 00    	call   *0xd84050
99cd5b:	8b 7d 0c             	mov    0xc(%ebp),%edi
99cd5e:	8d 4d ec             	lea    -0x14(%ebp),%ecx
99cd61:	8b 03                	mov    (%ebx),%eax
99cd63:	83 e7 02             	and    $0x2,%edi
99cd66:	57                   	push   %edi
99cd67:	51                   	push   %ecx
99cd68:	8b b0 70 01 00 00    	mov    0x170(%eax),%esi
99cd6e:	8b ce                	mov    %esi,%ecx
99cd70:	e8 f0 f8 a8 ff       	call   0x42c665
99cd75:	8b cb                	mov    %ebx,%ecx
99cd77:	ff d6                	call   *%esi
99cd79:	8b 75 bc             	mov    -0x44(%ebp),%esi
99cd7c:	8b cb                	mov    %ebx,%ecx
99cd7e:	8b 45 f0             	mov    -0x10(%ebp),%eax
99cd81:	2b 45 f8             	sub    -0x8(%ebp),%eax