40daa9:	51                   	push   %ecx
40daaa:	6a 00                	push   $0x0
40daac:	68 ec 65 40 00       	push   $0x4065ec
40dab1:	8b 76 10             	mov    0x10(%esi),%esi
40dab4:	8b ce                	mov    %esi,%ecx
40dab6:	50                   	push   %eax
40dab7:	ff 15 c4 12 45 00    	call   *0x4512c4
40dabd:	ff d6                	call   *%esi
40dabf:	89 44 24 44          	mov    %eax,0x44(%esp)
40dac3:	85 c0                	test   %eax,%eax
40dac5:	0f 88 23 a7 01 00    	js     0x4281ee
40dacb:	66 83 7c 24 58 08    	cmpw   $0x8,0x58(%esp)
40dad1:	0f 85 17 a7 01 00    	jne    0x4281ee
40dad7:	8b 7c 24 60          	mov    0x60(%esp),%edi
40dadb:	be ac 65 40 00       	mov    $0x4065ac,%esi
40dae0:	0f b7 06             	movzwl (%esi),%eax
40dae3:	66 85 c0             	test   %ax,%ax
40dae6:	0f 84 de 00 00 00    	je     0x40dbca
40daec:	83 f8 7f             	cmp    $0x7f,%eax
40daef:	0f 87 32 a5 01 00    	ja     0x428027
40daf5:	8d 48 bf             	lea    -0x41(%eax),%ecx
40daf8:	66 83 f9 19          	cmp    $0x19,%cx
40dafc:	76 2b                	jbe    0x40db29
40dafe:	8b d8                	mov    %eax,%ebx
40db00:	0f b7 0f             	movzwl (%edi),%ecx
40db03:	83 f9 7f             	cmp    $0x7f,%ecx
40db06:	0f 87 52 a5 01 00    	ja     0x42805e
40db0c:	8d 41 bf             	lea    -0x41(%ecx),%eax
40db0f:	66 83 f8 19          	cmp    $0x19,%ax
40db13:	76 1c                	jbe    0x40db31
40db15:	8b c1                	mov    %ecx,%eax
40db17:	0f b7 c0             	movzwl %ax,%eax
40db1a:	0f b7 cb             	movzwl %bx,%ecx
40db1d:	2b c8                	sub    %eax,%ecx
40db1f:	75 18                	jne    0x40db39
40db21:	83 c6 02             	add    $0x2,%esi
40db24:	83 c7 02             	add    $0x2,%edi
40db27:	eb b7                	jmp    0x40dae0
40db29:	83 c0 20             	add    $0x20,%eax
40db2c:	0f b7 d8             	movzwl %ax,%ebx
40db2f:	eb cf                	jmp    0x40db00
40db31:	8d 41 20             	lea    0x20(%ecx),%eax
40db34:	0f b7 c0             	movzwl %ax,%eax
40db37:	eb de                	jmp    0x40db17
40db39:	8b 7c 24 60          	mov    0x60(%esp),%edi
40db3d:	be fc 65 40 00       	mov    $0x4065fc,%esi
40db42:	0f b7 06             	movzwl (%esi),%eax
40db45:	66 85 c0             	test   %ax,%ax
40db48:	0f 84 52 01 00 00    	je     0x40dca0
40db4e:	8b c8                	mov    %eax,%ecx
40db50:	83 f9 7f             	cmp    $0x7f,%ecx
40db53:	0f 87 3c a5 01 00    	ja     0x428095
40db59:	8d 41 bf             	lea    -0x41(%ecx),%eax
40db5c:	66 83 f8 19          	cmp    $0x19,%ax
40db60:	76 2f                	jbe    0x40db91
40db62:	8b d9                	mov    %ecx,%ebx
40db64:	0f b7 0f             	movzwl (%edi),%ecx
40db67:	83 f9 7f             	cmp    $0x7f,%ecx
40db6a:	0f 87 5c a5 01 00    	ja     0x4280cc
40db70:	8d 41 bf             	lea    -0x41(%ecx),%eax
40db73:	66 83 f8 19          	cmp    $0x19,%ax
40db77:	76 20                	jbe    0x40db99
40db79:	8b c1                	mov    %ecx,%eax
40db7b:	0f b7 c0             	movzwl %ax,%eax
40db7e:	0f b7 cb             	movzwl %bx,%ecx
40db81:	2b c8                	sub    %eax,%ecx
40db83:	0f 85 8c 00 00 00    	jne    0x40dc15
40db89:	83 c6 02             	add    $0x2,%esi
40db8c:	83 c7 02             	add    $0x2,%edi
40db8f:	eb b1                	jmp    0x40db42
40db91:	8d 41 20             	lea    0x20(%ecx),%eax
40db94:	0f b7 d8             	movzwl %ax,%ebx
40db97:	eb cb                	jmp    0x40db64
40db99:	8d 41 20             	lea    0x20(%ecx),%eax
40db9c:	0f b7 c0             	movzwl %ax,%eax
40db9f:	eb da                	jmp    0x40db7b
40dba1:	8b 44 24 40          	mov    0x40(%esp),%eax
40dba5:	50                   	push   %eax
40dba6:	8b 08                	mov    (%eax),%ecx
40dba8:	8b 71 08             	mov    0x8(%ecx),%esi
40dbab:	8b ce                	mov    %esi,%ecx
40dbad:	ff 15 c4 12 45 00    	call   *0x4512c4
40dbb3:	ff d6                	call   *%esi
40dbb5:	ff 74 24 54          	push   0x54(%esp)
40dbb9:	ff 15 0c 30 45 00    	call   *0x45300c
40dbbf:	8b c7                	mov    %edi,%eax
40dbc1:	5f                   	pop    %edi
40dbc2:	5e                   	pop    %esi
40dbc3:	5b                   	pop    %ebx
40dbc4:	8b e5                	mov    %ebp,%esp
40dbc6:	5d                   	pop    %ebp
40dbc7:	c2 10 00             	ret    $0x10
40dbca:	66 83 3f 00          	cmpw   $0x0,(%edi)
40dbce:	0f 85 18 ff ff ff    	jne    0x40daec
40dbd4:	ff 74 24 3c          	push   0x3c(%esp)
40dbd8:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
40dbdc:	83 ec 08             	sub    $0x8,%esp
40dbdf:	8d 89 58 07 00 00    	lea    0x758(%ecx),%ecx
40dbe5:	e8 16 f5 ff ff       	call   0x40d100
40dbea:	8b f8                	mov    %eax,%edi
40dbec:	8d 44 24 58          	lea    0x58(%esp),%eax
40dbf0:	50                   	push   %eax
40dbf1:	ff 15 1c 30 45 00    	call   *0x45301c
40dbf7:	8b 44 24 3c          	mov    0x3c(%esp),%eax
40dbfb:	50                   	push   %eax
40dbfc:	8b 08                	mov    (%eax),%ecx
40dbfe:	8b 71 08             	mov    0x8(%ecx),%esi
40dc01:	8b ce                	mov    %esi,%ecx
40dc03:	ff 15 c4 12 45 00    	call   *0x4512c4
40dc09:	ff d6                	call   *%esi
40dc0b:	85 ff                	test   %edi,%edi
40dc0d:	0f 89 3d fe ff ff    	jns    0x40da50
40dc13:	eb 8c                	jmp    0x40dba1
40dc15:	8b 7c 24 60          	mov    0x60(%esp),%edi
40dc19:	be 60 64 40 00       	mov    $0x406460,%esi
40dc1e:	8b ff                	mov    %edi,%edi
40dc20:	0f b7 06             	movzwl (%esi),%eax
40dc23:	66 85 c0             	test   %ax,%ax
40dc26:	74 53                	je     0x40dc7b
40dc28:	8b c8                	mov    %eax,%ecx
40dc2a:	83 f9 7f             	cmp    $0x7f,%ecx
40dc2d:	0f 87 d0 a4 01 00    	ja     0x428103
40dc33:	8d 41 bf             	lea    -0x41(%ecx),%eax
40dc36:	66 83 f8 19          	cmp    $0x19,%ax
40dc3a:	76 2f                	jbe    0x40dc6b
40dc3c:	8b d9                	mov    %ecx,%ebx
40dc3e:	0f b7 0f             	movzwl (%edi),%ecx
40dc41:	83 f9 7f             	cmp    $0x7f,%ecx
40dc44:	0f 87 f0 a4 01 00    	ja     0x42813a
40dc4a:	8d 41 bf             	lea    -0x41(%ecx),%eax
40dc4d:	66 83 f8 19          	cmp    $0x19,%ax
40dc51:	76 20                	jbe    0x40dc73
40dc53:	8b c1                	mov    %ecx,%eax
40dc55:	0f b7 c0             	movzwl %ax,%eax
40dc58:	0f b7 cb             	movzwl %bx,%ecx
40dc5b:	2b c8                	sub    %eax,%ecx
40dc5d:	0f 85 0e a5 01 00    	jne    0x428171
40dc63:	83 c6 02             	add    $0x2,%esi
40dc66:	83 c7 02             	add    $0x2,%edi
40dc69:	eb b5                	jmp    0x40dc20
40dc6b:	8d 41 20             	lea    0x20(%ecx),%eax
40dc6e:	0f b7 d8             	movzwl %ax,%ebx
40dc71:	eb cb                	jmp    0x40dc3e
40dc73:	8d 41 20             	lea    0x20(%ecx),%eax
40dc76:	0f b7 c0             	movzwl %ax,%eax
40dc79:	eb da                	jmp    0x40dc55
40dc7b:	66 83 3f 00          	cmpw   $0x0,(%edi)
40dc7f:	75 a7                	jne    0x40dc28
40dc81:	8b 44 24 38          	mov    0x38(%esp),%eax
40dc85:	33 ff                	xor    %edi,%edi
40dc87:	c7 80 9c 07 00 00 01 	movl   $0x1,0x79c(%eax)
40dc8e:	00 00 00
40dc91:	c7 80 98 07 00 00 01 	movl   $0x1,0x798(%eax)
40dc98:	00 00 00
40dc9b:	e9 4c ff ff ff       	jmp    0x40dbec
40dca0:	66 83 3f 00          	cmpw   $0x0,(%edi)
40dca4:	0f 85 a4 fe ff ff    	jne    0x40db4e
40dcaa:	ff 74 24 3c          	push   0x3c(%esp)
40dcae:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
40dcb2:	6a ff                	push   $0xffffffff
40dcb4:	6a ff                	push   $0xffffffff
40dcb6:	8d 89 ec 06 00 00    	lea    0x6ec(%ecx),%ecx
40dcbc:	e8 df e7 00 00       	call   0x41c4a0
40dcc1:	8b f8                	mov    %eax,%edi
40dcc3:	e9 24 ff ff ff       	jmp    0x40dbec
40dcc8:	cc                   	int3
40dcc9:	cc                   	int3
40dcca:	cc                   	int3
40dccb:	cc                   	int3
40dccc:	cc                   	int3
40dccd:	cc                   	int3
40dcce:	cc                   	int3
40dccf:	cc                   	int3
40dcd0:	8b ff                	mov    %edi,%edi
40dcd2:	55                   	push   %ebp
40dcd3:	8b ec                	mov    %esp,%ebp
40dcd5:	6a ff                	push   $0xffffffff
40dcd7:	68 4b 33 42 00       	push   $0x42334b
40dcdc:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40dce2:	50                   	push   %eax
40dce3:	83 ec 18             	sub    $0x18,%esp
40dce6:	53                   	push   %ebx
40dce7:	56                   	push   %esi
40dce8:	57                   	push   %edi
40dce9:	a1 54 02 45 00       	mov    0x450254,%eax
40dcee:	33 c5                	xor    %ebp,%eax
40dcf0:	50                   	push   %eax
40dcf1:	8d 45 f4             	lea    -0xc(%ebp),%eax
40dcf4:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40dcfa:	8b 0d 00 f0 44 00    	mov    0x44f000,%ecx
40dd00:	81 f9 00 f0 44 00    	cmp    $0x44f000,%ecx
40dd06:	74 0a                	je     0x40dd12
40dd08:	f6 41 1c 04          	testb  $0x4,0x1c(%ecx)
40dd0c:	0f 85 f9 a4 01 00    	jne    0x42820b
40dd12:	8b 7d 0c             	mov    0xc(%ebp),%edi
40dd15:	33 db                	xor    %ebx,%ebx
40dd17:	8b c7                	mov    %edi,%eax
40dd19:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40dd1c:	0b 45 10             	or     0x10(%ebp),%eax
40dd1f:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40dd22:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40dd25:	0f 85 03 a5 01 00    	jne    0x42822e
40dd2b:	8b 75 30             	mov    0x30(%ebp),%esi
40dd2e:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40dd35:	85 f6                	test   %esi,%esi
40dd37:	0f 85 36 a5 01 00    	jne    0x428273
40dd3d:	85 db                	test   %ebx,%ebx
40dd3f:	0f 88 30 03 00 00    	js     0x40e075
40dd45:	a1 80 0b 45 00       	mov    0x450b80,%eax
40dd4a:	8b 48 08             	mov    0x8(%eax),%ecx
40dd4d:	8b 40 04             	mov    0x4(%eax),%eax
40dd50:	83 e1 05             	and    $0x5,%ecx
40dd53:	83 c9 08             	or     $0x8,%ecx
40dd56:	85 c0                	test   %eax,%eax
40dd58:	0f 84 60 a5 01 00    	je     0x4282be
40dd5e:	68 08 08 00 00       	push   $0x808
40dd63:	51                   	push   %ecx
40dd64:	50                   	push   %eax
40dd65:	ff 15 78 10 45 00    	call   *0x451078
40dd6b:	85 c0                	test   %eax,%eax
40dd6d:	0f 84 45 a5 01 00    	je     0x4282b8
40dd73:	89 45 ec             	mov    %eax,-0x14(%ebp)
40dd76:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40dd7d:	85 c0                	test   %eax,%eax
40dd7f:	0f 84 40 a5 01 00    	je     0x4282c5
40dd85:	8b c8                	mov    %eax,%ecx
40dd87:	e8 b4 f8 ff ff       	call   0x40d640
40dd8c:	8b f0                	mov    %eax,%esi
40dd8e:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40dd95:	85 f6                	test   %esi,%esi
40dd97:	0f 84 c0 a6 01 00    	je     0x42845d
40dd9d:	f0 ff 06             	lock incl (%esi)
40dda0:	8b 4d 08             	mov    0x8(%ebp),%ecx
40dda3:	8b 41 24             	mov    0x24(%ecx),%eax
40dda6:	8b 59 20             	mov    0x20(%ecx),%ebx
40dda9:	8b d3                	mov    %ebx,%edx
40ddab:	8b 4d 20             	mov    0x20(%ebp),%ecx
40ddae:	89 45 ec             	mov    %eax,-0x14(%ebp)
40ddb1:	89 8e fc 07 00 00    	mov    %ecx,0x7fc(%esi)
40ddb7:	89 9e 00 08 00 00    	mov    %ebx,0x800(%esi)
40ddbd:	89 86 04 08 00 00    	mov    %eax,0x804(%esi)
40ddc3:	85 c9                	test   %ecx,%ecx
40ddc5:	74 16                	je     0x40dddd
40ddc7:	8b 01                	mov    (%ecx),%eax
40ddc9:	51                   	push   %ecx
40ddca:	8b 78 04             	mov    0x4(%eax),%edi
40ddcd:	8b cf                	mov    %edi,%ecx
40ddcf:	ff 15 c4 12 45 00    	call   *0x4512c4
40ddd5:	ff d7                	call   *%edi
40ddd7:	8b 96 00 08 00 00    	mov    0x800(%esi),%edx
40dddd:	85 d2                	test   %edx,%edx
40dddf:	74 10                	je     0x40ddf1
40dde1:	8b 02                	mov    (%edx),%eax
40dde3:	52                   	push   %edx
40dde4:	8b 78 04             	mov    0x4(%eax),%edi
40dde7:	8b cf                	mov    %edi,%ecx
40dde9:	ff 15 c4 12 45 00    	call   *0x4512c4
40ddef:	ff d7                	call   *%edi
40ddf1:	8b 8e 04 08 00 00    	mov    0x804(%esi),%ecx
40ddf7:	85 c9                	test   %ecx,%ecx
40ddf9:	74 10                	je     0x40de0b
40ddfb:	8b 01                	mov    (%ecx),%eax
40ddfd:	51                   	push   %ecx
40ddfe:	8b 78 04             	mov    0x4(%eax),%edi
40de01:	8b cf                	mov    %edi,%ecx
40de03:	ff 15 c4 12 45 00    	call   *0x4512c4
40de09:	ff d7                	call   *%edi
40de0b:	8b 4d 20             	mov    0x20(%ebp),%ecx
40de0e:	8b 45 ec             	mov    -0x14(%ebp),%eax
40de11:	89 8e dc 06 00 00    	mov    %ecx,0x6dc(%esi)
40de17:	89 9e e0 06 00 00    	mov    %ebx,0x6e0(%esi)
40de1d:	89 86 e4 06 00 00    	mov    %eax,0x6e4(%esi)
40de23:	85 c9                	test   %ecx,%ecx
40de25:	74 16                	je     0x40de3d
40de27:	8b 01                	mov    (%ecx),%eax
40de29:	51                   	push   %ecx
40de2a:	8b 78 04             	mov    0x4(%eax),%edi
40de2d:	8b cf                	mov    %edi,%ecx
40de2f:	ff 15 c4 12 45 00    	call   *0x4512c4
40de35:	ff d7                	call   *%edi
40de37:	8b 9e e0 06 00 00    	mov    0x6e0(%esi),%ebx
40de3d:	85 db                	test   %ebx,%ebx
40de3f:	74 10                	je     0x40de51
40de41:	8b 03                	mov    (%ebx),%eax
40de43:	53                   	push   %ebx
40de44:	8b 78 04             	mov    0x4(%eax),%edi
40de47:	8b cf                	mov    %edi,%ecx
40de49:	ff 15 c4 12 45 00    	call   *0x4512c4
40de4f:	ff d7                	call   *%edi
40de51:	8b 8e e4 06 00 00    	mov    0x6e4(%esi),%ecx
40de57:	85 c9                	test   %ecx,%ecx
40de59:	74 10                	je     0x40de6b
40de5b:	8b 01                	mov    (%ecx),%eax
40de5d:	51                   	push   %ecx
40de5e:	8b 78 04             	mov    0x4(%eax),%edi
40de61:	8b cf                	mov    %edi,%ecx
40de63:	ff 15 c4 12 45 00    	call   *0x4512c4
40de69:	ff d7                	call   *%edi
40de6b:	83 be f4 06 00 00 00 	cmpl   $0x0,0x6f4(%esi)
40de72:	0f 85 5b a4 01 00    	jne    0x4282d3
40de78:	83 be 60 07 00 00 00 	cmpl   $0x0,0x760(%esi)
40de7f:	0f 85 4e a4 01 00    	jne    0x4282d3
40de85:	83 be 98 07 00 00 00 	cmpl   $0x0,0x798(%esi)
40de8c:	0f 85 41 a4 01 00    	jne    0x4282d3
40de92:	83 be b4 07 00 00 00 	cmpl   $0x0,0x7b4(%esi)
40de99:	0f 85 34 a4 01 00    	jne    0x4282d3
40de9f:	83 be ec 07 00 00 00 	cmpl   $0x0,0x7ec(%esi)
40dea6:	0f 85 20 a4 01 00    	jne    0x4282cc
40deac:	83 be d4 07 00 00 00 	cmpl   $0x0,0x7d4(%esi)
40deb3:	0f 85 13 a4 01 00    	jne    0x4282cc
40deb9:	8b 4d 34             	mov    0x34(%ebp),%ecx
40debc:	8d 45 f0             	lea    -0x10(%ebp),%eax
40debf:	68 3c 66 40 00       	push   $0x40663c
40dec4:	51                   	push   %ecx
40dec5:	68 40 66 40 00       	push   $0x406640
40deca:	50                   	push   %eax
40decb:	6a 03                	push   $0x3
40decd:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
40ded4:	e8 b7 18 00 00       	call   0x40f790
40ded9:	8b f8                	mov    %eax,%edi
40dedb:	83 c4 14             	add    $0x14,%esp
40dede:	85 ff                	test   %edi,%edi
40dee0:	0f 88 4b a5 01 00    	js     0x428431
40dee6:	8b 8e d8 06 00 00    	mov    0x6d8(%esi),%ecx
40deec:	85 c9                	test   %ecx,%ecx
40deee:	0f 85 14 a4 01 00    	jne    0x428308
40def4:	8d 8e d8 06 00 00    	lea    0x6d8(%esi),%ecx
40defa:	8b 86 e4 06 00 00    	mov    0x6e4(%esi),%eax
40df00:	6a 00                	push   $0x0
40df02:	51                   	push   %ecx
40df03:	ff b6 dc 06 00 00    	push   0x6dc(%esi)
40df09:	8b 38                	mov    (%eax),%edi
40df0b:	6a 00                	push   $0x0
40df0d:	ff 75 f0             	push   -0x10(%ebp)
40df10:	8b 7f 18             	mov    0x18(%edi),%edi
40df13:	8b cf                	mov    %edi,%ecx
40df15:	50                   	push   %eax
40df16:	ff 15 c4 12 45 00    	call   *0x4512c4
40df1c:	ff d7                	call   *%edi
40df1e:	8b f8                	mov    %eax,%edi
40df20:	85 ff                	test   %edi,%edi
40df22:	78 17                	js     0x40df3b
40df24:	ff 75 34             	push   0x34(%ebp)
40df27:	8d 4e 08             	lea    0x8(%esi),%ecx
40df2a:	ff b6 d8 06 00 00    	push   0x6d8(%esi)
40df30:	6a ff                	push   $0xffffffff
40df32:	6a ff                	push   $0xffffffff
40df34:	e8 97 01 00 00       	call   0x40e0d0
40df39:	8b f8                	mov    %eax,%edi
40df3b:	ff 75 f0             	push   -0x10(%ebp)