4177b0:	83 c1 02             	add    $0x2,%ecx
4177b3:	66 3b 85 44 fd ff ff 	cmp    -0x2bc(%ebp),%ax
4177ba:	75 f1                	jne    0x4177ad
4177bc:	2b ca                	sub    %edx,%ecx
4177be:	d1 f9                	sar    $1,%ecx
4177c0:	8d 41 01             	lea    0x1(%ecx),%eax
4177c3:	89 85 34 fd ff ff    	mov    %eax,-0x2cc(%ebp)
4177c9:	8d 04 45 04 00 00 00 	lea    0x4(,%eax,2),%eax
4177d0:	50                   	push   %eax
4177d1:	e8 74 d5 ff ff       	call   0x414d4a
4177d6:	89 85 28 fd ff ff    	mov    %eax,-0x2d8(%ebp)
4177dc:	59                   	pop    %ecx
4177dd:	85 c0                	test   %eax,%eax
4177df:	0f 84 3e ff ff ff    	je     0x417723
4177e5:	8b 0c 3e             	mov    (%esi,%edi,1),%ecx
4177e8:	83 c0 04             	add    $0x4,%eax
4177eb:	89 8d 30 fd ff ff    	mov    %ecx,-0x2d0(%ebp)
4177f1:	8b 8c 9f a0 00 00 00 	mov    0xa0(%edi,%ebx,4),%ecx
4177f8:	89 8d 24 fd ff ff    	mov    %ecx,-0x2dc(%ebp)
4177fe:	8b 4f 08             	mov    0x8(%edi),%ecx
417801:	89 8d 20 fd ff ff    	mov    %ecx,-0x2e0(%ebp)
417807:	8d 8d f4 fe ff ff    	lea    -0x10c(%ebp),%ecx
41780d:	51                   	push   %ecx
41780e:	ff b5 34 fd ff ff    	push   -0x2cc(%ebp)
417814:	89 85 3c fd ff ff    	mov    %eax,-0x2c4(%ebp)
41781a:	50                   	push   %eax
41781b:	e8 a9 dc ff ff       	call   0x4154c9
417820:	83 c4 0c             	add    $0xc,%esp
417823:	85 c0                	test   %eax,%eax
417825:	0f 85 53 02 00 00    	jne    0x417a7e
41782b:	66 83 bd f4 fe ff ff 	cmpw   $0x43,-0x10c(%ebp)
417832:	43
417833:	8b 85 3c fd ff ff    	mov    -0x2c4(%ebp),%eax
417839:	89 04 3e             	mov    %eax,(%esi,%edi,1)
41783c:	75 19                	jne    0x417857
41783e:	66 83 bd f6 fe ff ff 	cmpw   $0x0,-0x10a(%ebp)
417845:	00
417846:	75 0f                	jne    0x417857
417848:	8b 8d 44 fd ff ff    	mov    -0x2bc(%ebp),%ecx
41784e:	89 8c 9f a0 00 00 00 	mov    %ecx,0xa0(%edi,%ebx,4)
417855:	eb 1a                	jmp    0x417871
417857:	8d 85 48 fd ff ff    	lea    -0x2b8(%ebp),%eax
41785d:	50                   	push   %eax
41785e:	e8 b7 f2 ff ff       	call   0x416b1a
417863:	59                   	pop    %ecx
417864:	8b 8d 44 fd ff ff    	mov    -0x2bc(%ebp),%ecx
41786a:	89 84 9f a0 00 00 00 	mov    %eax,0xa0(%edi,%ebx,4)
417871:	83 fb 02             	cmp    $0x2,%ebx
417874:	0f 85 17 01 00 00    	jne    0x417991
41787a:	8b b5 2c fd ff ff    	mov    -0x2d4(%ebp),%esi
417880:	8b d1                	mov    %ecx,%edx
417882:	8b 85 40 fd ff ff    	mov    -0x2c0(%ebp),%eax
417888:	8b ce                	mov    %esi,%ecx
41788a:	89 47 08             	mov    %eax,0x8(%edi)
41788d:	89 b5 3c fd ff ff    	mov    %esi,-0x2c4(%ebp)
417893:	8b 46 20             	mov    0x20(%esi),%eax
417896:	89 85 34 fd ff ff    	mov    %eax,-0x2cc(%ebp)
41789c:	8b 46 24             	mov    0x24(%esi),%eax
41789f:	89 85 40 fd ff ff    	mov    %eax,-0x2c0(%ebp)
4178a5:	8b 47 08             	mov    0x8(%edi),%eax
4178a8:	3b 01                	cmp    (%ecx),%eax
4178aa:	74 47                	je     0x4178f3
4178ac:	8b b5 3c fd ff ff    	mov    -0x2c4(%ebp),%esi
4178b2:	42                   	inc    %edx
4178b3:	8b 01                	mov    (%ecx),%eax
4178b5:	8b 9d 34 fd ff ff    	mov    -0x2cc(%ebp),%ebx
4178bb:	8b 49 04             	mov    0x4(%ecx),%ecx
4178be:	89 1e                	mov    %ebx,(%esi)
4178c0:	8b 9d 40 fd ff ff    	mov    -0x2c0(%ebp),%ebx
4178c6:	89 8d 40 fd ff ff    	mov    %ecx,-0x2c0(%ebp)
4178cc:	8b ce                	mov    %esi,%ecx
4178ce:	83 c1 08             	add    $0x8,%ecx
4178d1:	89 5e 04             	mov    %ebx,0x4(%esi)
4178d4:	8b 9d 1c fd ff ff    	mov    -0x2e4(%ebp),%ebx
4178da:	8b b5 2c fd ff ff    	mov    -0x2d4(%ebp),%esi
4178e0:	89 85 34 fd ff ff    	mov    %eax,-0x2cc(%ebp)
4178e6:	89 8d 3c fd ff ff    	mov    %ecx,-0x2c4(%ebp)
4178ec:	83 fa 05             	cmp    $0x5,%edx
4178ef:	7c b4                	jl     0x4178a5
4178f1:	eb 23                	jmp    0x417916
4178f3:	85 d2                	test   %edx,%edx
4178f5:	74 1f                	je     0x417916
4178f7:	8b 04 d6             	mov    (%esi,%edx,8),%eax
4178fa:	89 06                	mov    %eax,(%esi)
4178fc:	8b 44 d6 04          	mov    0x4(%esi,%edx,8),%eax
417900:	89 46 04             	mov    %eax,0x4(%esi)
417903:	8b 85 34 fd ff ff    	mov    -0x2cc(%ebp),%eax
417909:	89 04 d6             	mov    %eax,(%esi,%edx,8)
41790c:	8b 85 40 fd ff ff    	mov    -0x2c0(%ebp),%eax
417912:	89 44 d6 04          	mov    %eax,0x4(%esi,%edx,8)
417916:	83 fa 05             	cmp    $0x5,%edx
417919:	75 6e                	jne    0x417989
41791b:	6a 01                	push   $0x1
41791d:	ff 77 08             	push   0x8(%edi)
417920:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
417926:	50                   	push   %eax
417927:	6a 7f                	push   $0x7f
417929:	68 08 c7 42 00       	push   $0x42c708
41792e:	6a 01                	push   $0x1
417930:	ff b5 44 fd ff ff    	push   -0x2bc(%ebp)
417936:	e8 16 48 00 00       	call   0x41c151
41793b:	83 c4 1c             	add    $0x1c,%esp
41793e:	85 c0                	test   %eax,%eax
417940:	8b 85 44 fd ff ff    	mov    -0x2bc(%ebp),%eax
417946:	74 39                	je     0x417981
417948:	b9 ff 01 00 00       	mov    $0x1ff,%ecx
41794d:	66 21 8c 45 f4 fd ff 	and    %cx,-0x20c(%ebp,%eax,2)
417954:	ff
417955:	40                   	inc    %eax
417956:	83 f8 7f             	cmp    $0x7f,%eax
417959:	72 ed                	jb     0x417948
41795b:	68 fe 00 00 00       	push   $0xfe
417960:	ff 35 a0 bb 43 00    	push   0x43bba0
417966:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
41796c:	50                   	push   %eax
41796d:	e8 3b 20 ff ff       	call   0x4099ad
417972:	33 c9                	xor    %ecx,%ecx
417974:	83 c4 0c             	add    $0xc,%esp
417977:	85 c0                	test   %eax,%eax
417979:	0f 94 c1             	sete   %cl
41797c:	89 4e 04             	mov    %ecx,0x4(%esi)
41797f:	eb 03                	jmp    0x417984
417981:	89 46 04             	mov    %eax,0x4(%esi)
417984:	8b 47 08             	mov    0x8(%edi),%eax
417987:	89 06                	mov    %eax,(%esi)
417989:	8b 46 04             	mov    0x4(%esi),%eax
41798c:	89 47 18             	mov    %eax,0x18(%edi)
41798f:	eb 1e                	jmp    0x4179af
417991:	83 fb 01             	cmp    $0x1,%ebx
417994:	75 0b                	jne    0x4179a1
417996:	8b 85 40 fd ff ff    	mov    -0x2c0(%ebp),%eax
41799c:	89 47 10             	mov    %eax,0x10(%edi)
41799f:	eb 0e                	jmp    0x4179af
4179a1:	83 fb 05             	cmp    $0x5,%ebx
4179a4:	75 09                	jne    0x4179af
4179a6:	8b 85 40 fd ff ff    	mov    -0x2c0(%ebp),%eax
4179ac:	89 47 14             	mov    %eax,0x14(%edi)
4179af:	6b c3 0c             	imul   $0xc,%ebx,%eax
4179b2:	57                   	push   %edi
4179b3:	8b b0 48 c6 42 00    	mov    0x42c648(%eax),%esi
4179b9:	8b ce                	mov    %esi,%ecx
4179bb:	ff 15 50 72 42 00    	call   *0x427250
4179c1:	ff d6                	call   *%esi
4179c3:	59                   	pop    %ecx
4179c4:	8b 8d 30 fd ff ff    	mov    -0x2d0(%ebp),%ecx
4179ca:	85 c0                	test   %eax,%eax
4179cc:	74 3e                	je     0x417a0c
4179ce:	8b 85 38 fd ff ff    	mov    -0x2c8(%ebp),%eax
4179d4:	89 0c 38             	mov    %ecx,(%eax,%edi,1)
4179d7:	ff b4 9f a0 00 00 00 	push   0xa0(%edi,%ebx,4)
4179de:	e8 2d d3 ff ff       	call   0x414d10
4179e3:	8b 8d 28 fd ff ff    	mov    -0x2d8(%ebp),%ecx
4179e9:	8b 85 24 fd ff ff    	mov    -0x2dc(%ebp),%eax
4179ef:	51                   	push   %ecx
4179f0:	89 84 9f a0 00 00 00 	mov    %eax,0xa0(%edi,%ebx,4)
4179f7:	e8 14 d3 ff ff       	call   0x414d10
4179fc:	8b 85 20 fd ff ff    	mov    -0x2e0(%ebp),%eax
417a02:	59                   	pop    %ecx
417a03:	59                   	pop    %ecx
417a04:	89 47 08             	mov    %eax,0x8(%edi)
417a07:	e9 17 fd ff ff       	jmp    0x417723
417a0c:	81 f9 a0 bc 43 00    	cmp    $0x43bca0,%ecx
417a12:	74 4a                	je     0x417a5e
417a14:	8b f3                	mov    %ebx,%esi
417a16:	83 c9 ff             	or     $0xffffffff,%ecx
417a19:	03 f6                	add    %esi,%esi
417a1b:	8b 44 f7 28          	mov    0x28(%edi,%esi,8),%eax
417a1f:	f0 0f c1 08          	lock xadd %ecx,(%eax)
417a23:	75 39                	jne    0x417a5e
417a25:	ff 74 f7 28          	push   0x28(%edi,%esi,8)
417a29:	e8 e2 d2 ff ff       	call   0x414d10
417a2e:	ff 74 f7 24          	push   0x24(%edi,%esi,8)
417a32:	e8 d9 d2 ff ff       	call   0x414d10
417a37:	ff b4 9f a0 00 00 00 	push   0xa0(%edi,%ebx,4)
417a3e:	e8 cd d2 ff ff       	call   0x414d10
417a43:	8b 85 38 fd ff ff    	mov    -0x2c8(%ebp),%eax
417a49:	83 c4 0c             	add    $0xc,%esp
417a4c:	8b 8d 44 fd ff ff    	mov    -0x2bc(%ebp),%ecx
417a52:	89 0c 38             	mov    %ecx,(%eax,%edi,1)
417a55:	89 8c 9f a0 00 00 00 	mov    %ecx,0xa0(%edi,%ebx,4)
417a5c:	eb 06                	jmp    0x417a64
417a5e:	8b 85 38 fd ff ff    	mov    -0x2c8(%ebp),%eax
417a64:	8b 8d 28 fd ff ff    	mov    -0x2d8(%ebp),%ecx
417a6a:	03 db                	add    %ebx,%ebx
417a6c:	c7 01 01 00 00 00    	movl   $0x1,(%ecx)
417a72:	8b 04 38             	mov    (%eax,%edi,1),%eax
417a75:	89 4c df 28          	mov    %ecx,0x28(%edi,%ebx,8)
417a79:	e9 a7 fc ff ff       	jmp    0x417725
417a7e:	8b 85 44 fd ff ff    	mov    -0x2bc(%ebp),%eax
417a84:	50                   	push   %eax
417a85:	50                   	push   %eax
417a86:	50                   	push   %eax
417a87:	50                   	push   %eax
417a88:	50                   	push   %eax
417a89:	e8 81 42 ff ff       	call   0x40bd0f
417a8e:	cc                   	int3
417a8f:	a1 e0 9c 83 02       	mov    0x2839ce0,%eax
417a94:	c3                   	ret
417a95:	8b ff                	mov    %edi,%edi
417a97:	55                   	push   %ebp
417a98:	8b ec                	mov    %esp,%ebp
417a9a:	8b 45 08             	mov    0x8(%ebp),%eax
417a9d:	85 c0                	test   %eax,%eax
417a9f:	74 1a                	je     0x417abb
417aa1:	83 f8 01             	cmp    $0x1,%eax
417aa4:	74 15                	je     0x417abb
417aa6:	e8 c0 cf ff ff       	call   0x414a6b
417aab:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
417ab1:	e8 2c 42 ff ff       	call   0x40bce2
417ab6:	83 c8 ff             	or     $0xffffffff,%eax
417ab9:	5d                   	pop    %ebp
417aba:	c3                   	ret
417abb:	b9 e0 9c 83 02       	mov    $0x2839ce0,%ecx
417ac0:	87 01                	xchg   %eax,(%ecx)
417ac2:	5d                   	pop    %ebp
417ac3:	c3                   	ret
417ac4:	b8 e4 9c 83 02       	mov    $0x2839ce4,%eax
417ac9:	c3                   	ret
417aca:	6a 0c                	push   $0xc
417acc:	68 08 81 43 00       	push   $0x438108
417ad1:	e8 3a e9 00 00       	call   0x426410
417ad6:	e8 81 10 00 00       	call   0x418b5c
417adb:	8b 70 0c             	mov    0xc(%eax),%esi
417ade:	85 f6                	test   %esi,%esi
417ae0:	74 1e                	je     0x417b00
417ae2:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
417ae6:	8b ce                	mov    %esi,%ecx
417ae8:	ff 15 50 72 42 00    	call   *0x427250
417aee:	ff d6                	call   *%esi
417af0:	eb 07                	jmp    0x417af9
417af2:	33 c0                	xor    %eax,%eax
417af4:	40                   	inc    %eax
417af5:	c3                   	ret
417af6:	8b 65 e8             	mov    -0x18(%ebp),%esp
417af9:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
417b00:	e8 71 d5 ff ff       	call   0x415076
417b05:	cc                   	int3
417b06:	8b ff                	mov    %edi,%edi
417b08:	55                   	push   %ebp
417b09:	8b ec                	mov    %esp,%ebp
417b0b:	8b 4d 10             	mov    0x10(%ebp),%ecx
417b0e:	8b 45 0c             	mov    0xc(%ebp),%eax
417b11:	81 e1 ff ff f7 ff    	and    $0xfff7ffff,%ecx
417b17:	23 c1                	and    %ecx,%eax
417b19:	56                   	push   %esi
417b1a:	8b 75 08             	mov    0x8(%ebp),%esi
417b1d:	a9 e0 fc f0 fc       	test   $0xfcf0fce0,%eax
417b22:	74 24                	je     0x417b48
417b24:	85 f6                	test   %esi,%esi
417b26:	74 0d                	je     0x417b35
417b28:	6a 00                	push   $0x0
417b2a:	6a 00                	push   $0x0
417b2c:	e8 00 a4 00 00       	call   0x421f31
417b31:	59                   	pop    %ecx
417b32:	59                   	pop    %ecx
417b33:	89 06                	mov    %eax,(%esi)
417b35:	e8 31 cf ff ff       	call   0x414a6b
417b3a:	6a 16                	push   $0x16
417b3c:	5e                   	pop    %esi
417b3d:	89 30                	mov    %esi,(%eax)
417b3f:	e8 9e 41 ff ff       	call   0x40bce2
417b44:	8b c6                	mov    %esi,%eax
417b46:	eb 1a                	jmp    0x417b62
417b48:	51                   	push   %ecx
417b49:	ff 75 0c             	push   0xc(%ebp)
417b4c:	85 f6                	test   %esi,%esi
417b4e:	74 09                	je     0x417b59
417b50:	e8 dc a3 00 00       	call   0x421f31
417b55:	89 06                	mov    %eax,(%esi)
417b57:	eb 05                	jmp    0x417b5e
417b59:	e8 d3 a3 00 00       	call   0x421f31
417b5e:	59                   	pop    %ecx
417b5f:	59                   	pop    %ecx
417b60:	33 c0                	xor    %eax,%eax
417b62:	5e                   	pop    %esi
417b63:	5d                   	pop    %ebp
417b64:	c3                   	ret
417b65:	8b ff                	mov    %edi,%edi
417b67:	55                   	push   %ebp
417b68:	8b ec                	mov    %esp,%ebp
417b6a:	8b 55 08             	mov    0x8(%ebp),%edx
417b6d:	56                   	push   %esi
417b6e:	85 d2                	test   %edx,%edx
417b70:	74 11                	je     0x417b83
417b72:	8b 4d 0c             	mov    0xc(%ebp),%ecx
417b75:	85 c9                	test   %ecx,%ecx
417b77:	74 0a                	je     0x417b83
417b79:	8b 75 10             	mov    0x10(%ebp),%esi
417b7c:	85 f6                	test   %esi,%esi
417b7e:	75 17                	jne    0x417b97
417b80:	c6 02 00             	movb   $0x0,(%edx)
417b83:	e8 e3 ce ff ff       	call   0x414a6b
417b88:	6a 16                	push   $0x16
417b8a:	5e                   	pop    %esi
417b8b:	89 30                	mov    %esi,(%eax)
417b8d:	e8 50 41 ff ff       	call   0x40bce2
417b92:	8b c6                	mov    %esi,%eax
417b94:	5e                   	pop    %esi
417b95:	5d                   	pop    %ebp
417b96:	c3                   	ret
417b97:	57                   	push   %edi
417b98:	8b fa                	mov    %edx,%edi
417b9a:	2b f2                	sub    %edx,%esi
417b9c:	8a 04 3e             	mov    (%esi,%edi,1),%al
417b9f:	88 07                	mov    %al,(%edi)
417ba1:	47                   	inc    %edi
417ba2:	84 c0                	test   %al,%al
417ba4:	74 05                	je     0x417bab
417ba6:	83 e9 01             	sub    $0x1,%ecx
417ba9:	75 f1                	jne    0x417b9c
417bab:	5f                   	pop    %edi
417bac:	85 c9                	test   %ecx,%ecx
417bae:	75 0b                	jne    0x417bbb
417bb0:	88 0a                	mov    %cl,(%edx)
417bb2:	e8 b4 ce ff ff       	call   0x414a6b
417bb7:	6a 22                	push   $0x22
417bb9:	eb cf                	jmp    0x417b8a
417bbb:	33 f6                	xor    %esi,%esi
417bbd:	eb d3                	jmp    0x417b92
417bbf:	8b ff                	mov    %edi,%edi
417bc1:	55                   	push   %ebp
417bc2:	8b ec                	mov    %esp,%ebp
417bc4:	8b 45 08             	mov    0x8(%ebp),%eax
417bc7:	a8 04                	test   $0x4,%al
417bc9:	74 04                	je     0x417bcf
417bcb:	b0 01                	mov    $0x1,%al
417bcd:	5d                   	pop    %ebp
417bce:	c3                   	ret
417bcf:	a8 01                	test   $0x1,%al
417bd1:	74 1b                	je     0x417bee
417bd3:	83 e0 02             	and    $0x2,%eax
417bd6:	74 09                	je     0x417be1
417bd8:	81 7d 0c 00 00 00 80 	cmpl   $0x80000000,0xc(%ebp)
417bdf:	77 ea                	ja     0x417bcb
417be1:	85 c0                	test   %eax,%eax
417be3:	75 09                	jne    0x417bee
417be5:	81 7d 0c ff ff ff 7f 	cmpl   $0x7fffffff,0xc(%ebp)
417bec:	77 dd                	ja     0x417bcb
417bee:	32 c0                	xor    %al,%al
417bf0:	5d                   	pop    %ebp
417bf1:	c3                   	ret
417bf2:	8b ff                	mov    %edi,%edi
417bf4:	55                   	push   %ebp
417bf5:	8b ec                	mov    %esp,%ebp
417bf7:	8b 45 08             	mov    0x8(%ebp),%eax
417bfa:	8b 4d 10             	mov    0x10(%ebp),%ecx
417bfd:	8b 55 0c             	mov    0xc(%ebp),%edx
417c00:	89 10                	mov    %edx,(%eax)
417c02:	89 48 04             	mov    %ecx,0x4(%eax)
417c05:	85 c9                	test   %ecx,%ecx