41cede:	f0 0f c1 41 20       	lock xadd %eax,0x20(%ecx)
41cee3:	75 0b                	jne    0x41cef0
41cee5:	6a 00                	push   $0x0
41cee7:	ff 36                	push   (%esi)
41cee9:	e8 f9 af ff ff       	call   0x417ee7
41ceee:	59                   	pop    %ecx
41ceef:	59                   	pop    %ecx
41cef0:	83 26 00             	andl   $0x0,(%esi)
41cef3:	5e                   	pop    %esi
41cef4:	c3                   	ret
41cef5:	56                   	push   %esi
41cef6:	8b f1                	mov    %ecx,%esi
41cef8:	f6 46 3c 01          	testb  $0x1,0x3c(%esi)
41cefc:	74 32                	je     0x41cf30
41cefe:	8b 46 20             	mov    0x20(%esi),%eax
41cf01:	8b 08                	mov    (%eax),%ecx
41cf03:	85 c9                	test   %ecx,%ecx
41cf05:	74 0a                	je     0x41cf11
41cf07:	8b 46 30             	mov    0x30(%esi),%eax
41cf0a:	8b 00                	mov    (%eax),%eax
41cf0c:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
41cf0f:	eb 0d                	jmp    0x41cf1e
41cf11:	8b 46 2c             	mov    0x2c(%esi),%eax
41cf14:	8b 08                	mov    (%eax),%ecx
41cf16:	8b 46 1c             	mov    0x1c(%esi),%eax
41cf19:	8b 00                	mov    (%eax),%eax
41cf1b:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
41cf1e:	8b 46 0c             	mov    0xc(%esi),%eax
41cf21:	2b 08                	sub    (%eax),%ecx
41cf23:	83 e1 fe             	and    $0xfffffffe,%ecx
41cf26:	51                   	push   %ecx
41cf27:	ff 30                	push   (%eax)
41cf29:	e8 fc 65 fe ff       	call   0x40352a
41cf2e:	59                   	pop    %ecx
41cf2f:	59                   	pop    %ecx
41cf30:	8b 46 0c             	mov    0xc(%esi),%eax
41cf33:	33 c9                	xor    %ecx,%ecx
41cf35:	89 08                	mov    %ecx,(%eax)
41cf37:	8b 46 1c             	mov    0x1c(%esi),%eax
41cf3a:	89 08                	mov    %ecx,(%eax)
41cf3c:	8b 46 2c             	mov    0x2c(%esi),%eax
41cf3f:	89 08                	mov    %ecx,(%eax)
41cf41:	8b 46 10             	mov    0x10(%esi),%eax
41cf44:	89 08                	mov    %ecx,(%eax)
41cf46:	8b 46 20             	mov    0x20(%esi),%eax
41cf49:	89 08                	mov    %ecx,(%eax)
41cf4b:	8b 46 30             	mov    0x30(%esi),%eax
41cf4e:	89 08                	mov    %ecx,(%eax)
41cf50:	83 66 3c fe          	andl   $0xfffffffe,0x3c(%esi)
41cf54:	89 4e 38             	mov    %ecx,0x38(%esi)
41cf57:	5e                   	pop    %esi
41cf58:	c3                   	ret
41cf59:	56                   	push   %esi
41cf5a:	8b f1                	mov    %ecx,%esi
41cf5c:	8b 46 10             	mov    0x10(%esi),%eax
41cf5f:	85 c0                	test   %eax,%eax
41cf61:	7e 0a                	jle    0x41cf6d
41cf63:	ff 76 0c             	push   0xc(%esi)
41cf66:	e8 23 fe 02 00       	call   0x44cd8e
41cf6b:	eb 0a                	jmp    0x41cf77
41cf6d:	79 09                	jns    0x41cf78
41cf6f:	ff 76 0c             	push   0xc(%esi)
41cf72:	e8 6a 23 02 00       	call   0x43f2e1
41cf77:	59                   	pop    %ecx
41cf78:	ff 76 14             	push   0x14(%esi)
41cf7b:	e8 0e fe 02 00       	call   0x44cd8e
41cf80:	59                   	pop    %ecx
41cf81:	5e                   	pop    %esi
41cf82:	c3                   	ret
41cf83:	56                   	push   %esi
41cf84:	8b f1                	mov    %ecx,%esi
41cf86:	8b 46 10             	mov    0x10(%esi),%eax
41cf89:	eb 0c                	jmp    0x41cf97
41cf8b:	83 e8 01             	sub    $0x1,%eax
41cf8e:	89 46 10             	mov    %eax,0x10(%esi)
41cf91:	75 04                	jne    0x41cf97
41cf93:	83 66 0c 00          	andl   $0x0,0xc(%esi)
41cf97:	85 c0                	test   %eax,%eax
41cf99:	75 f0                	jne    0x41cf8b
41cf9b:	57                   	push   %edi
41cf9c:	8b 7e 08             	mov    0x8(%esi),%edi
41cf9f:	eb 16                	jmp    0x41cfb7
41cfa1:	8b 46 04             	mov    0x4(%esi),%eax
41cfa4:	4f                   	dec    %edi
41cfa5:	83 3c b8 00          	cmpl   $0x0,(%eax,%edi,4)
41cfa9:	74 0c                	je     0x41cfb7
41cfab:	6a 10                	push   $0x10
41cfad:	ff 34 b8             	push   (%eax,%edi,4)
41cfb0:	e8 75 65 fe ff       	call   0x40352a
41cfb5:	59                   	pop    %ecx
41cfb6:	59                   	pop    %ecx
41cfb7:	85 ff                	test   %edi,%edi
41cfb9:	75 e6                	jne    0x41cfa1
41cfbb:	39 7e 04             	cmp    %edi,0x4(%esi)
41cfbe:	5f                   	pop    %edi
41cfbf:	74 11                	je     0x41cfd2
41cfc1:	8b 46 08             	mov    0x8(%esi),%eax
41cfc4:	c1 e0 02             	shl    $0x2,%eax
41cfc7:	50                   	push   %eax
41cfc8:	ff 76 04             	push   0x4(%esi)
41cfcb:	e8 5a 65 fe ff       	call   0x40352a
41cfd0:	59                   	pop    %ecx
41cfd1:	59                   	pop    %ecx
41cfd2:	83 66 08 00          	andl   $0x0,0x8(%esi)
41cfd6:	83 66 04 00          	andl   $0x0,0x4(%esi)
41cfda:	5e                   	pop    %esi
41cfdb:	c3                   	ret
41cfdc:	53                   	push   %ebx
41cfdd:	56                   	push   %esi
41cfde:	8b f1                	mov    %ecx,%esi
41cfe0:	33 db                	xor    %ebx,%ebx
41cfe2:	eb 07                	jmp    0x41cfeb
41cfe4:	8b ce                	mov    %esi,%ecx
41cfe6:	e8 7c 56 00 00       	call   0x422667
41cfeb:	39 5e 10             	cmp    %ebx,0x10(%esi)
41cfee:	75 f4                	jne    0x41cfe4
41cff0:	57                   	push   %edi
41cff1:	8b 7e 08             	mov    0x8(%esi),%edi
41cff4:	eb 15                	jmp    0x41d00b
41cff6:	8b 46 04             	mov    0x4(%esi),%eax
41cff9:	4f                   	dec    %edi
41cffa:	39 1c b8             	cmp    %ebx,(%eax,%edi,4)
41cffd:	74 0c                	je     0x41d00b
41cfff:	6a 28                	push   $0x28
41d001:	ff 34 b8             	push   (%eax,%edi,4)
41d004:	e8 21 65 fe ff       	call   0x40352a
41d009:	59                   	pop    %ecx
41d00a:	59                   	pop    %ecx
41d00b:	85 ff                	test   %edi,%edi
41d00d:	75 e7                	jne    0x41cff6
41d00f:	5f                   	pop    %edi
41d010:	39 5e 04             	cmp    %ebx,0x4(%esi)
41d013:	74 11                	je     0x41d026
41d015:	8b 46 08             	mov    0x8(%esi),%eax
41d018:	c1 e0 02             	shl    $0x2,%eax
41d01b:	50                   	push   %eax
41d01c:	ff 76 04             	push   0x4(%esi)
41d01f:	e8 06 65 fe ff       	call   0x40352a
41d024:	59                   	pop    %ecx
41d025:	59                   	pop    %ecx
41d026:	89 5e 08             	mov    %ebx,0x8(%esi)
41d029:	89 5e 04             	mov    %ebx,0x4(%esi)
41d02c:	5e                   	pop    %esi
41d02d:	5b                   	pop    %ebx
41d02e:	c3                   	ret
41d02f:	56                   	push   %esi
41d030:	8b f1                	mov    %ecx,%esi
41d032:	ff 76 08             	push   0x8(%esi)
41d035:	e8 54 fd 02 00       	call   0x44cd8e
41d03a:	ff 76 10             	push   0x10(%esi)
41d03d:	e8 4c fd 02 00       	call   0x44cd8e
41d042:	ff 76 14             	push   0x14(%esi)
41d045:	e8 44 fd 02 00       	call   0x44cd8e
41d04a:	83 c4 0c             	add    $0xc,%esp
41d04d:	5e                   	pop    %esi
41d04e:	c3                   	ret
41d04f:	56                   	push   %esi
41d050:	8b f1                	mov    %ecx,%esi
41d052:	83 3e 00             	cmpl   $0x0,(%esi)
41d055:	74 19                	je     0x41d070
41d057:	8b 46 08             	mov    0x8(%esi),%eax
41d05a:	2b 06                	sub    (%esi),%eax
41d05c:	50                   	push   %eax
41d05d:	ff 36                	push   (%esi)
41d05f:	e8 c6 64 fe ff       	call   0x40352a
41d064:	33 c0                	xor    %eax,%eax
41d066:	59                   	pop    %ecx
41d067:	59                   	pop    %ecx
41d068:	89 06                	mov    %eax,(%esi)
41d06a:	89 46 04             	mov    %eax,0x4(%esi)
41d06d:	89 46 08             	mov    %eax,0x8(%esi)
41d070:	5e                   	pop    %esi
41d071:	c3                   	ret
41d072:	56                   	push   %esi
41d073:	8b f1                	mov    %ecx,%esi
41d075:	83 3e 00             	cmpl   $0x0,(%esi)
41d078:	74 1c                	je     0x41d096
41d07a:	8b 46 08             	mov    0x8(%esi),%eax
41d07d:	2b 06                	sub    (%esi),%eax
41d07f:	83 e0 fc             	and    $0xfffffffc,%eax
41d082:	50                   	push   %eax
41d083:	ff 36                	push   (%esi)
41d085:	e8 a0 64 fe ff       	call   0x40352a
41d08a:	33 c0                	xor    %eax,%eax
41d08c:	59                   	pop    %ecx
41d08d:	59                   	pop    %ecx
41d08e:	89 06                	mov    %eax,(%esi)
41d090:	89 46 04             	mov    %eax,0x4(%esi)
41d093:	89 46 08             	mov    %eax,0x8(%esi)
41d096:	5e                   	pop    %esi
41d097:	c3                   	ret
41d098:	56                   	push   %esi
41d099:	8b f1                	mov    %ecx,%esi
41d09b:	83 3e 00             	cmpl   $0x0,(%esi)
41d09e:	74 1c                	je     0x41d0bc
41d0a0:	8b 46 08             	mov    0x8(%esi),%eax
41d0a3:	2b 06                	sub    (%esi),%eax
41d0a5:	83 e0 fc             	and    $0xfffffffc,%eax
41d0a8:	50                   	push   %eax
41d0a9:	ff 36                	push   (%esi)
41d0ab:	e8 7a 64 fe ff       	call   0x40352a
41d0b0:	33 c0                	xor    %eax,%eax
41d0b2:	59                   	pop    %ecx
41d0b3:	59                   	pop    %ecx
41d0b4:	89 06                	mov    %eax,(%esi)
41d0b6:	89 46 04             	mov    %eax,0x4(%esi)
41d0b9:	89 46 08             	mov    %eax,0x8(%esi)
41d0bc:	5e                   	pop    %esi
41d0bd:	c3                   	ret
41d0be:	56                   	push   %esi
41d0bf:	8b f1                	mov    %ecx,%esi
41d0c1:	83 3e 00             	cmpl   $0x0,(%esi)
41d0c4:	74 22                	je     0x41d0e8
41d0c6:	8b 46 08             	mov    0x8(%esi),%eax
41d0c9:	2b 06                	sub    (%esi),%eax
41d0cb:	6a 18                	push   $0x18
41d0cd:	59                   	pop    %ecx
41d0ce:	99                   	cltd
41d0cf:	f7 f9                	idiv   %ecx
41d0d1:	6b c0 18             	imul   $0x18,%eax,%eax
41d0d4:	50                   	push   %eax
41d0d5:	ff 36                	push   (%esi)
41d0d7:	e8 4e 64 fe ff       	call   0x40352a
41d0dc:	33 c0                	xor    %eax,%eax
41d0de:	59                   	pop    %ecx
41d0df:	59                   	pop    %ecx
41d0e0:	89 06                	mov    %eax,(%esi)
41d0e2:	89 46 04             	mov    %eax,0x4(%esi)
41d0e5:	89 46 08             	mov    %eax,0x8(%esi)
41d0e8:	5e                   	pop    %esi
41d0e9:	c3                   	ret
41d0ea:	56                   	push   %esi
41d0eb:	8b f1                	mov    %ecx,%esi
41d0ed:	83 3e 00             	cmpl   $0x0,(%esi)
41d0f0:	74 1c                	je     0x41d10e
41d0f2:	8b 46 08             	mov    0x8(%esi),%eax
41d0f5:	2b 06                	sub    (%esi),%eax
41d0f7:	83 e0 f8             	and    $0xfffffff8,%eax
41d0fa:	50                   	push   %eax
41d0fb:	ff 36                	push   (%esi)
41d0fd:	e8 28 64 fe ff       	call   0x40352a
41d102:	33 c0                	xor    %eax,%eax
41d104:	59                   	pop    %ecx
41d105:	59                   	pop    %ecx
41d106:	89 06                	mov    %eax,(%esi)
41d108:	89 46 04             	mov    %eax,0x4(%esi)
41d10b:	89 46 08             	mov    %eax,0x8(%esi)
41d10e:	5e                   	pop    %esi
41d10f:	c3                   	ret
41d110:	56                   	push   %esi
41d111:	8b f1                	mov    %ecx,%esi
41d113:	83 3e 00             	cmpl   $0x0,(%esi)
41d116:	74 1c                	je     0x41d134
41d118:	8b 46 08             	mov    0x8(%esi),%eax
41d11b:	2b 06                	sub    (%esi),%eax
41d11d:	83 e0 f8             	and    $0xfffffff8,%eax
41d120:	50                   	push   %eax
41d121:	ff 36                	push   (%esi)
41d123:	e8 02 64 fe ff       	call   0x40352a
41d128:	33 c0                	xor    %eax,%eax
41d12a:	59                   	pop    %ecx
41d12b:	59                   	pop    %ecx
41d12c:	89 06                	mov    %eax,(%esi)
41d12e:	89 46 04             	mov    %eax,0x4(%esi)
41d131:	89 46 08             	mov    %eax,0x8(%esi)
41d134:	5e                   	pop    %esi
41d135:	c3                   	ret
41d136:	56                   	push   %esi
41d137:	8b f1                	mov    %ecx,%esi
41d139:	83 3e 00             	cmpl   $0x0,(%esi)
41d13c:	74 1c                	je     0x41d15a
41d13e:	8b 46 08             	mov    0x8(%esi),%eax
41d141:	2b 06                	sub    (%esi),%eax
41d143:	83 e0 f8             	and    $0xfffffff8,%eax
41d146:	50                   	push   %eax
41d147:	ff 36                	push   (%esi)
41d149:	e8 dc 63 fe ff       	call   0x40352a
41d14e:	33 c0                	xor    %eax,%eax
41d150:	59                   	pop    %ecx
41d151:	59                   	pop    %ecx
41d152:	89 06                	mov    %eax,(%esi)
41d154:	89 46 04             	mov    %eax,0x4(%esi)
41d157:	89 46 08             	mov    %eax,0x8(%esi)
41d15a:	5e                   	pop    %esi
41d15b:	c3                   	ret
41d15c:	56                   	push   %esi
41d15d:	8b f1                	mov    %ecx,%esi
41d15f:	83 3e 00             	cmpl   $0x0,(%esi)
41d162:	74 1c                	je     0x41d180
41d164:	8b 46 08             	mov    0x8(%esi),%eax
41d167:	2b 06                	sub    (%esi),%eax
41d169:	83 e0 f8             	and    $0xfffffff8,%eax
41d16c:	50                   	push   %eax
41d16d:	ff 36                	push   (%esi)
41d16f:	e8 b6 63 fe ff       	call   0x40352a
41d174:	33 c0                	xor    %eax,%eax
41d176:	59                   	pop    %ecx
41d177:	59                   	pop    %ecx
41d178:	89 06                	mov    %eax,(%esi)
41d17a:	89 46 04             	mov    %eax,0x4(%esi)
41d17d:	89 46 08             	mov    %eax,0x8(%esi)
41d180:	5e                   	pop    %esi
41d181:	c3                   	ret
41d182:	55                   	push   %ebp
41d183:	8b ec                	mov    %esp,%ebp
41d185:	51                   	push   %ecx
41d186:	56                   	push   %esi
41d187:	57                   	push   %edi
41d188:	8b f9                	mov    %ecx,%edi
41d18a:	89 7d fc             	mov    %edi,-0x4(%ebp)
41d18d:	8b 37                	mov    (%edi),%esi
41d18f:	85 f6                	test   %esi,%esi
41d191:	74 3f                	je     0x41d1d2
41d193:	53                   	push   %ebx
41d194:	8b 5f 04             	mov    0x4(%edi),%ebx
41d197:	3b f3                	cmp    %ebx,%esi
41d199:	74 15                	je     0x41d1b0
41d19b:	6a 18                	push   $0x18
41d19d:	5f                   	pop    %edi
41d19e:	8b ce                	mov    %esi,%ecx
41d1a0:	e8 2f 01 00 00       	call   0x41d2d4
41d1a5:	03 f7                	add    %edi,%esi
41d1a7:	3b f3                	cmp    %ebx,%esi
41d1a9:	75 f3                	jne    0x41d19e
41d1ab:	8b 7d fc             	mov    -0x4(%ebp),%edi
41d1ae:	8b 37                	mov    (%edi),%esi
41d1b0:	8b 47 08             	mov    0x8(%edi),%eax
41d1b3:	2b c6                	sub    %esi,%eax
41d1b5:	6a 18                	push   $0x18
41d1b7:	59                   	pop    %ecx
41d1b8:	99                   	cltd
41d1b9:	f7 f9                	idiv   %ecx
41d1bb:	6b c0 18             	imul   $0x18,%eax,%eax
41d1be:	50                   	push   %eax
41d1bf:	56                   	push   %esi
41d1c0:	e8 65 63 fe ff       	call   0x40352a
41d1c5:	59                   	pop    %ecx
41d1c6:	33 c0                	xor    %eax,%eax
41d1c8:	59                   	pop    %ecx
41d1c9:	89 07                	mov    %eax,(%edi)
41d1cb:	89 47 04             	mov    %eax,0x4(%edi)
41d1ce:	89 47 08             	mov    %eax,0x8(%edi)
41d1d1:	5b                   	pop    %ebx
41d1d2:	5f                   	pop    %edi
41d1d3:	5e                   	pop    %esi
41d1d4:	c9                   	leave
41d1d5:	c3                   	ret
41d1d6:	55                   	push   %ebp
41d1d7:	8b ec                	mov    %esp,%ebp
41d1d9:	51                   	push   %ecx