436798:	89 94 24 e4 00 00 00 	mov    %edx,0xe4(%esp)
43679f:	8b 41 08             	mov    0x8(%ecx),%eax
4367a2:	89 84 24 bc 00 00 00 	mov    %eax,0xbc(%esp)
4367a9:	8b 41 10             	mov    0x10(%ecx),%eax
4367ac:	89 84 24 c0 00 00 00 	mov    %eax,0xc0(%esp)
4367b3:	8b 41 14             	mov    0x14(%ecx),%eax
4367b6:	8b 4c 24 30          	mov    0x30(%esp),%ecx
4367ba:	89 84 24 c4 00 00 00 	mov    %eax,0xc4(%esp)
4367c1:	8b 44 24 0c          	mov    0xc(%esp),%eax
4367c5:	89 8c 24 d8 00 00 00 	mov    %ecx,0xd8(%esp)
4367cc:	8b 40 10             	mov    0x10(%eax),%eax
4367cf:	89 84 24 c8 00 00 00 	mov    %eax,0xc8(%esp)
4367d6:	8b 87 80 00 00 00    	mov    0x80(%edi),%eax
4367dc:	8b 40 34             	mov    0x34(%eax),%eax
4367df:	89 84 24 cc 00 00 00 	mov    %eax,0xcc(%esp)
4367e6:	8b 44 24 3c          	mov    0x3c(%esp),%eax
4367ea:	89 84 24 d0 00 00 00 	mov    %eax,0xd0(%esp)
4367f1:	8b 44 24 40          	mov    0x40(%esp),%eax
4367f5:	89 84 24 d4 00 00 00 	mov    %eax,0xd4(%esp)
4367fc:	8b 44 24 38          	mov    0x38(%esp),%eax
436800:	89 84 24 dc 00 00 00 	mov    %eax,0xdc(%esp)
436807:	8b 87 94 00 00 00    	mov    0x94(%edi),%eax
43680d:	89 84 24 00 01 00 00 	mov    %eax,0x100(%esp)
436814:	85 d2                	test   %edx,%edx
436816:	77 10                	ja     0x436828
436818:	72 08                	jb     0x436822
43681a:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
436820:	73 06                	jae    0x436828
436822:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
436826:	eb 08                	jmp    0x436830
436828:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
43682f:	00
436830:	e8 cb 6b ff ff       	call   0x42d400
436835:	2b 87 98 00 00 00    	sub    0x98(%edi),%eax
43683b:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
436840:	2b 44 24 0c          	sub    0xc(%esp),%eax
436844:	3b c8                	cmp    %eax,%ecx
436846:	1b c9                	sbb    %ecx,%ecx
436848:	f7 d1                	not    %ecx
43684a:	23 c8                	and    %eax,%ecx
43684c:	89 8c 24 04 01 00 00 	mov    %ecx,0x104(%esp)
436853:	e8 a8 6b ff ff       	call   0x42d400
436858:	8b 36                	mov    (%esi),%esi
43685a:	89 84 24 e8 00 00 00 	mov    %eax,0xe8(%esp)
436861:	8b 47 44             	mov    0x44(%edi),%eax
436864:	83 e0 01             	and    $0x1,%eax
436867:	c7 84 24 ec 00 00 00 	movl   $0x0,0xec(%esp)
43686e:	00 00 00 00
436872:	8b 76 08             	mov    0x8(%esi),%esi
436875:	8b ce                	mov    %esi,%ecx
436877:	50                   	push   %eax
436878:	ff 74 24 3c          	push   0x3c(%esp)
43687c:	8b 87 80 00 00 00    	mov    0x80(%edi),%eax
436882:	ff 74 24 18          	push   0x18(%esp)
436886:	c7 84 24 1c 01 00 00 	movl   $0x7f70,0x11c(%esp)
43688d:	70 7f 00 00
436891:	ff 74 24 24          	push   0x24(%esp)
436895:	8b 00                	mov    (%eax),%eax
436897:	ff 77 6c             	push   0x6c(%edi)
43689a:	c7 84 24 28 01 00 00 	movl   $0x0,0x128(%esp)
4368a1:	00 00 00 00
4368a5:	ff 77 68             	push   0x68(%edi)
4368a8:	c7 84 24 20 01 00 00 	movl   $0x0,0x120(%esp)
4368af:	00 00 00 00
4368b3:	ff 70 10             	push   0x10(%eax)
4368b6:	c7 84 24 28 01 00 00 	movl   $0x0,0x128(%esp)
4368bd:	00 00 00 00
4368c1:	ff b7 9c 00 00 00    	push   0x9c(%edi)
4368c7:	c7 84 24 38 01 00 00 	movl   $0x0,0x138(%esp)
4368ce:	00 00 00 00
4368d2:	c7 84 24 3c 01 00 00 	movl   $0x0,0x13c(%esp)
4368d9:	00 00 00 00
4368dd:	c7 84 24 40 01 00 00 	movl   $0x0,0x140(%esp)
4368e4:	00 00 00 00
4368e8:	c7 84 24 44 01 00 00 	movl   $0x0,0x144(%esp)
4368ef:	00 00 00 00
4368f3:	c7 84 24 48 01 00 00 	movl   $0x0,0x148(%esp)
4368fa:	00 00 00 00
4368fe:	c7 84 24 4c 01 00 00 	movl   $0x0,0x14c(%esp)
436905:	00 00 00 00
436909:	c7 84 24 50 01 00 00 	movl   $0x0,0x150(%esp)
436910:	00 00 00 00
436914:	c7 84 24 54 01 00 00 	movl   $0x0,0x154(%esp)
43691b:	00 00 00 00
43691f:	ff 15 84 23 45 00    	call   *0x452384
436925:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
436929:	ff d6                	call   *%esi
43692b:	8b 74 24 30          	mov    0x30(%esp),%esi
43692f:	ba 60 19 41 00       	mov    $0x411960,%edx
436934:	68 93 24 00 00       	push   $0x2493
436939:	8b ce                	mov    %esi,%ecx
43693b:	e8 40 0b 01 00       	call   0x447480
436940:	89 44 24 10          	mov    %eax,0x10(%esp)
436944:	83 fe 26             	cmp    $0x26,%esi
436947:	74 60                	je     0x4369a9
436949:	83 fe 70             	cmp    $0x70,%esi
43694c:	75 1d                	jne    0x43696b
43694e:	e8 ad 6a ff ff       	call   0x42d400
436953:	8b d0                	mov    %eax,%edx
436955:	8b 44 24 1c          	mov    0x1c(%esp),%eax
436959:	8b ca                	mov    %edx,%ecx
43695b:	2b 48 18             	sub    0x18(%eax),%ecx
43695e:	81 f9 60 ea 00 00    	cmp    $0xea60,%ecx
436964:	76 49                	jbe    0x4369af
436966:	89 50 18             	mov    %edx,0x18(%eax)
436969:	eb 04                	jmp    0x43696f
43696b:	85 c0                	test   %eax,%eax
43696d:	79 3a                	jns    0x4369a9
43696f:	8b cf                	mov    %edi,%ecx
436971:	e8 fa 18 00 00       	call   0x438270
436976:	8b 74 24 14          	mov    0x14(%esp),%esi
43697a:	8b 4c 24 30          	mov    0x30(%esp),%ecx
43697e:	8b 57 44             	mov    0x44(%edi),%edx
436981:	56                   	push   %esi
436982:	53                   	push   %ebx
436983:	51                   	push   %ecx
436984:	ff 74 24 1c          	push   0x1c(%esp)
436988:	33 c9                	xor    %ecx,%ecx
43698a:	03 4f 08             	add    0x8(%edi),%ecx
43698d:	50                   	push   %eax
43698e:	8b 47 0c             	mov    0xc(%edi),%eax
436991:	83 d0 00             	adc    $0x0,%eax
436994:	83 e2 01             	and    $0x1,%edx
436997:	50                   	push   %eax
436998:	8b 87 80 00 00 00    	mov    0x80(%edi),%eax
43699e:	51                   	push   %ecx
43699f:	ff 70 10             	push   0x10(%eax)
4369a2:	e8 39 f2 ff ff       	call   0x435be0
4369a7:	eb 0a                	jmp    0x4369b3
4369a9:	8b 74 24 14          	mov    0x14(%esp),%esi
4369ad:	eb 08                	jmp    0x4369b7
4369af:	8b 74 24 14          	mov    0x14(%esp),%esi
4369b3:	8b 44 24 10          	mov    0x10(%esp),%eax
4369b7:	83 7c 24 34 00       	cmpl   $0x0,0x34(%esp)
4369bc:	0f 84 a9 02 00 00    	je     0x436c6b
4369c2:	85 c0                	test   %eax,%eax
4369c4:	0f 88 a1 02 00 00    	js     0x436c6b
4369ca:	c7 84 24 a0 00 00 00 	movl   $0x1,0xa0(%esp)
4369d1:	01 00 00 00
4369d5:	c7 44 24 0c 01 00 00 	movl   $0x1,0xc(%esp)
4369dc:	00
4369dd:	e8 1e 6a ff ff       	call   0x42d400
4369e2:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
4369e6:	2b 41 1c             	sub    0x1c(%ecx),%eax
4369e9:	3d 60 ea 00 00       	cmp    $0xea60,%eax
4369ee:	73 44                	jae    0x436a34
4369f0:	8b 41 20             	mov    0x20(%ecx),%eax
4369f3:	8b 51 24             	mov    0x24(%ecx),%edx
4369f6:	8b ca                	mov    %edx,%ecx
4369f8:	89 44 24 10          	mov    %eax,0x10(%esp)
4369fc:	0f a4 c1 01          	shld   $0x1,%eax,%ecx
436a00:	03 c0                	add    %eax,%eax
436a02:	01 44 24 10          	add    %eax,0x10(%esp)
436a06:	8b 44 24 10          	mov    0x10(%esp),%eax
436a0a:	13 d1                	adc    %ecx,%edx
436a0c:	0f ac d0 01          	shrd   $0x1,%edx,%eax
436a10:	d1 ea                	shr    $1,%edx
436a12:	3b f2                	cmp    %edx,%esi
436a14:	77 1e                	ja     0x436a34
436a16:	72 04                	jb     0x436a1c
436a18:	3b d8                	cmp    %eax,%ebx
436a1a:	73 18                	jae    0x436a34
436a1c:	8b 44 24 1c          	mov    0x1c(%esp),%eax
436a20:	b9 01 00 00 00       	mov    $0x1,%ecx
436a25:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
436a2c:	00
436a2d:	83 c0 28             	add    $0x28,%eax
436a30:	f0 0f c1 08          	lock xadd %ecx,(%eax)
436a34:	83 3d 68 1a 45 00 00 	cmpl   $0x0,0x451a68
436a3b:	74 6a                	je     0x436aa7
436a3d:	83 3d 6c 1a 45 00 00 	cmpl   $0x0,0x451a6c
436a44:	75 61                	jne    0x436aa7
436a46:	83 3d 4c 14 45 00 00 	cmpl   $0x0,0x45144c
436a4d:	74 58                	je     0x436aa7
436a4f:	83 3d 64 1a 45 00 00 	cmpl   $0x0,0x451a64
436a56:	74 0e                	je     0x436a66
436a58:	ff 15 b4 21 45 00    	call   *0x4521b4
436a5e:	3b 05 64 1a 45 00    	cmp    0x451a64,%eax
436a64:	75 41                	jne    0x436aa7
436a66:	e8 c5 36 ff ff       	call   0x42a130
436a6b:	85 c0                	test   %eax,%eax
436a6d:	74 03                	je     0x436a72
436a6f:	ff 40 18             	incl   0x18(%eax)
436a72:	ff 74 24 0c          	push   0xc(%esp)
436a76:	56                   	push   %esi
436a77:	53                   	push   %ebx
436a78:	68 cc 26 41 00       	push   $0x4126cc
436a7d:	e8 4e 41 ff ff       	call   0x42abd0
436a82:	83 c4 10             	add    $0x10,%esp
436a85:	8b d0                	mov    %eax,%edx
436a87:	b9 29 00 00 00       	mov    $0x29,%ecx
436a8c:	e8 4f 3f ff ff       	call   0x42a9e0
436a91:	e8 9a 36 ff ff       	call   0x42a130
436a96:	85 c0                	test   %eax,%eax
436a98:	74 0d                	je     0x436aa7
436a9a:	83 40 18 ff          	addl   $0xffffffff,0x18(%eax)
436a9e:	75 07                	jne    0x436aa7
436aa0:	8b c8                	mov    %eax,%ecx
436aa2:	e8 a9 35 ff ff       	call   0x42a050
436aa7:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
436aac:	0f 84 b9 01 00 00    	je     0x436c6b
436ab2:	8b 87 80 00 00 00    	mov    0x80(%edi),%eax
436ab8:	8b 4f 0c             	mov    0xc(%edi),%ecx
436abb:	8b 70 10             	mov    0x10(%eax),%esi
436abe:	33 c0                	xor    %eax,%eax
436ac0:	03 47 08             	add    0x8(%edi),%eax
436ac3:	89 74 24 18          	mov    %esi,0x18(%esp)
436ac7:	83 d1 00             	adc    $0x0,%ecx
436aca:	89 44 24 10          	mov    %eax,0x10(%esp)
436ace:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
436ad2:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
436ad6:	75 0a                	jne    0x436ae2
436ad8:	83 7f 7c 00          	cmpl   $0x0,0x7c(%edi)
436adc:	75 04                	jne    0x436ae2
436ade:	33 ff                	xor    %edi,%edi
436ae0:	eb 09                	jmp    0x436aeb
436ae2:	8b cf                	mov    %edi,%ecx
436ae4:	e8 87 17 00 00       	call   0x438270
436ae9:	8b f8                	mov    %eax,%edi
436aeb:	8b 16                	mov    (%esi),%edx
436aed:	8d 84 24 80 04 00 00 	lea    0x480(%esp),%eax
436af4:	50                   	push   %eax
436af5:	8b 72 08             	mov    0x8(%edx),%esi
436af8:	8b ce                	mov    %esi,%ecx
436afa:	ff 15 84 23 45 00    	call   *0x452384
436b00:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
436b04:	ff d6                	call   *%esi
436b06:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
436b0a:	8b 44 24 10          	mov    0x10(%esp),%eax
436b0e:	51                   	push   %ecx
436b0f:	50                   	push   %eax
436b10:	51                   	push   %ecx
436b11:	50                   	push   %eax
436b12:	68 bc 19 41 00       	push   $0x4119bc
436b17:	8d 84 24 14 02 00 00 	lea    0x214(%esp),%eax
436b1e:	68 80 00 00 00       	push   $0x80
436b23:	50                   	push   %eax
436b24:	e8 77 23 ff ff       	call   0x428ea0
436b29:	83 c4 1c             	add    $0x1c,%esp
436b2c:	8d 84 24 80 02 00 00 	lea    0x280(%esp),%eax
436b33:	57                   	push   %edi
436b34:	57                   	push   %edi
436b35:	68 e4 19 41 00       	push   $0x4119e4
436b3a:	68 80 00 00 00       	push   $0x80
436b3f:	50                   	push   %eax
436b40:	e8 5b 23 ff ff       	call   0x428ea0
436b45:	8b c3                	mov    %ebx,%eax
436b47:	b9 77 be 9f 1a       	mov    $0x1a9fbe77,%ecx
436b4c:	f7 e1                	mul    %ecx
436b4e:	bf 2f dd 24 06       	mov    $0x624dd2f,%edi
436b53:	83 c4 14             	add    $0x14,%esp
436b56:	89 44 24 60          	mov    %eax,0x60(%esp)
436b5a:	8b f2                	mov    %edx,%esi
436b5c:	8b c3                	mov    %ebx,%eax
436b5e:	f7 e7                	mul    %edi
436b60:	8b f8                	mov    %eax,%edi
436b62:	89 54 24 18          	mov    %edx,0x18(%esp)
436b66:	8b 44 24 14          	mov    0x14(%esp),%eax
436b6a:	f7 e1                	mul    %ecx
436b6c:	8b c8                	mov    %eax,%ecx
436b6e:	8b da                	mov    %edx,%ebx
436b70:	8b 44 24 14          	mov    0x14(%esp),%eax
436b74:	ba 2f dd 24 06       	mov    $0x624dd2f,%edx
436b79:	f7 e2                	mul    %edx
436b7b:	03 ce                	add    %esi,%ecx
436b7d:	89 44 24 0c          	mov    %eax,0xc(%esp)
436b81:	83 d3 00             	adc    $0x0,%ebx
436b84:	89 54 24 10          	mov    %edx,0x10(%esp)
436b88:	8b 54 24 0c          	mov    0xc(%esp),%edx
436b8c:	03 f9                	add    %ecx,%edi
436b8e:	8b 4c 24 18          	mov    0x18(%esp),%ecx
436b92:	83 d1 00             	adc    $0x0,%ecx
436b95:	89 7c 24 60          	mov    %edi,0x60(%esp)
436b99:	33 c0                	xor    %eax,%eax
436b9b:	03 d9                	add    %ecx,%ebx
436b9d:	8b 4c 24 20          	mov    0x20(%esp),%ecx
436ba1:	13 c0                	adc    %eax,%eax
436ba3:	03 d3                	add    %ebx,%edx
436ba5:	8b 5c 24 10          	mov    0x10(%esp),%ebx
436ba9:	13 d8                	adc    %eax,%ebx
436bab:	8b 44 24 14          	mov    0x14(%esp),%eax
436baf:	2b ca                	sub    %edx,%ecx
436bb1:	1b c3                	sbb    %ebx,%eax
436bb3:	0f ac c1 01          	shrd   $0x1,%eax,%ecx
436bb7:	d1 e8                	shr    $1,%eax
436bb9:	03 ca                	add    %edx,%ecx
436bbb:	13 c3                	adc    %ebx,%eax
436bbd:	0f ac c1 09          	shrd   $0x9,%eax,%ecx
436bc1:	c1 e8 09             	shr    $0x9,%eax
436bc4:	50                   	push   %eax
436bc5:	51                   	push   %ecx
436bc6:	68 f0 26 41 00       	push   $0x4126f0
436bcb:	8d 84 24 0c 03 00 00 	lea    0x30c(%esp),%eax
436bd2:	68 80 00 00 00       	push   $0x80
436bd7:	50                   	push   %eax
436bd8:	e8 c3 22 ff ff       	call   0x428ea0
436bdd:	83 c4 14             	add    $0x14,%esp
436be0:	e8 1b 68 ff ff       	call   0x42d400
436be5:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
436be9:	8b f0                	mov    %eax,%esi
436beb:	8b 87 80 00 00 00    	mov    0x80(%edi),%eax
436bf1:	8b 48 18             	mov    0x18(%eax),%ecx
436bf4:	83 79 1c 00          	cmpl   $0x0,0x1c(%ecx)
436bf8:	74 51                	je     0x436c4b
436bfa:	ff 71 28             	push   0x28(%ecx)
436bfd:	8d 84 24 84 03 00 00 	lea    0x384(%esp),%eax
436c04:	68 fc cc 40 00       	push   $0x40ccfc
436c09:	68 80 00 00 00       	push   $0x80
436c0e:	50                   	push   %eax
436c0f:	e8 8c 22 ff ff       	call   0x428ea0
436c14:	8b 87 80 00 00 00    	mov    0x80(%edi),%eax
436c1a:	8b 40 18             	mov    0x18(%eax),%eax
436c1d:	2b 70 1c             	sub    0x1c(%eax),%esi
436c20:	b8 d3 4d 62 10       	mov    $0x10624dd3,%eax
436c25:	f7 e6                	mul    %esi
436c27:	8d 84 24 10 04 00 00 	lea    0x410(%esp),%eax
436c2e:	c1 ea 06             	shr    $0x6,%edx
436c31:	52                   	push   %edx
436c32:	68 fc cc 40 00       	push   $0x40ccfc
436c37:	68 80 00 00 00       	push   $0x80
436c3c:	50                   	push   %eax
436c3d:	e8 5e 22 ff ff       	call   0x428ea0
436c42:	8b 87 80 00 00 00    	mov    0x80(%edi),%eax
436c48:	83 c4 20             	add    $0x20,%esp
436c4b:	8b 70 18             	mov    0x18(%eax),%esi
436c4e:	e8 ad 67 ff ff       	call   0x42d400
436c53:	89 46 1c             	mov    %eax,0x1c(%esi)
436c56:	8b 44 24 20          	mov    0x20(%esp),%eax
436c5a:	89 46 20             	mov    %eax,0x20(%esi)
436c5d:	8b 44 24 14          	mov    0x14(%esp),%eax
436c61:	89 46 24             	mov    %eax,0x24(%esi)
436c64:	c7 46 28 00 00 00 00 	movl   $0x0,0x28(%esi)
436c6b:	8a 47 2c             	mov    0x2c(%edi),%al
436c6e:	3c 0a                	cmp    $0xa,%al
436c70:	74 04                	je     0x436c76
436c72:	3c 0c                	cmp    $0xc,%al
436c74:	75 39                	jne    0x436caf
436c76:	8b 87 80 00 00 00    	mov    0x80(%edi),%eax
436c7c:	83 c9 ff             	or     $0xffffffff,%ecx
436c7f:	8b 57 44             	mov    0x44(%edi),%edx
436c82:	8b 30                	mov    (%eax),%esi
436c84:	8d 86 8c 03 00 00    	lea    0x38c(%esi),%eax
436c8a:	f0 0f c1 08          	lock xadd %ecx,(%eax)
436c8e:	f6 c2 01             	test   $0x1,%dl
436c91:	74 0f                	je     0x436ca2
436c93:	8b 86 94 03 00 00    	mov    0x394(%esi),%eax
436c99:	48                   	dec    %eax
436c9a:	89 86 94 03 00 00    	mov    %eax,0x394(%esi)
436ca0:	eb 0d                	jmp    0x436caf
436ca2:	8b 86 90 03 00 00    	mov    0x390(%esi),%eax