40fe68:	ff 76 7c             	push   0x7c(%esi)
40fe6b:	e8 2f a9 ff ff       	call   0x40a79f
40fe70:	ff b6 88 00 00 00    	push   0x88(%esi)
40fe76:	e8 24 a9 ff ff       	call   0x40a79f
40fe7b:	59                   	pop    %ecx
40fe7c:	59                   	pop    %ecx
40fe7d:	8b 86 8c 00 00 00    	mov    0x8c(%esi),%eax
40fe83:	85 c0                	test   %eax,%eax
40fe85:	74 45                	je     0x40fecc
40fe87:	83 38 00             	cmpl   $0x0,(%eax)
40fe8a:	75 40                	jne    0x40fecc
40fe8c:	8b 86 90 00 00 00    	mov    0x90(%esi),%eax
40fe92:	2d fe 00 00 00       	sub    $0xfe,%eax
40fe97:	50                   	push   %eax
40fe98:	e8 02 a9 ff ff       	call   0x40a79f
40fe9d:	8b 86 94 00 00 00    	mov    0x94(%esi),%eax
40fea3:	bf 80 00 00 00       	mov    $0x80,%edi
40fea8:	2b c7                	sub    %edi,%eax
40feaa:	50                   	push   %eax
40feab:	e8 ef a8 ff ff       	call   0x40a79f
40feb0:	8b 86 98 00 00 00    	mov    0x98(%esi),%eax
40feb6:	2b c7                	sub    %edi,%eax
40feb8:	50                   	push   %eax
40feb9:	e8 e1 a8 ff ff       	call   0x40a79f
40febe:	ff b6 8c 00 00 00    	push   0x8c(%esi)
40fec4:	e8 d6 a8 ff ff       	call   0x40a79f
40fec9:	83 c4 10             	add    $0x10,%esp
40fecc:	ff b6 9c 00 00 00    	push   0x9c(%esi)
40fed2:	e8 95 00 00 00       	call   0x40ff6c
40fed7:	59                   	pop    %ecx
40fed8:	6a 06                	push   $0x6
40feda:	58                   	pop    %eax
40fedb:	8d 9e a0 00 00 00    	lea    0xa0(%esi),%ebx
40fee1:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fee4:	8d 7e 28             	lea    0x28(%esi),%edi
40fee7:	81 7f f8 e8 12 42 00 	cmpl   $0x4212e8,-0x8(%edi)
40feee:	74 1d                	je     0x40ff0d
40fef0:	8b 07                	mov    (%edi),%eax
40fef2:	85 c0                	test   %eax,%eax
40fef4:	74 14                	je     0x40ff0a
40fef6:	83 38 00             	cmpl   $0x0,(%eax)
40fef9:	75 0f                	jne    0x40ff0a
40fefb:	50                   	push   %eax
40fefc:	e8 9e a8 ff ff       	call   0x40a79f
40ff01:	ff 33                	push   (%ebx)
40ff03:	e8 97 a8 ff ff       	call   0x40a79f
40ff08:	59                   	pop    %ecx
40ff09:	59                   	pop    %ecx
40ff0a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ff0d:	83 7f f4 00          	cmpl   $0x0,-0xc(%edi)
40ff11:	74 16                	je     0x40ff29
40ff13:	8b 47 fc             	mov    -0x4(%edi),%eax
40ff16:	85 c0                	test   %eax,%eax
40ff18:	74 0c                	je     0x40ff26
40ff1a:	83 38 00             	cmpl   $0x0,(%eax)
40ff1d:	75 07                	jne    0x40ff26
40ff1f:	50                   	push   %eax
40ff20:	e8 7a a8 ff ff       	call   0x40a79f
40ff25:	59                   	pop    %ecx
40ff26:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ff29:	83 c3 04             	add    $0x4,%ebx
40ff2c:	83 c7 10             	add    $0x10,%edi
40ff2f:	83 e8 01             	sub    $0x1,%eax
40ff32:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ff35:	75 b0                	jne    0x40fee7
40ff37:	56                   	push   %esi
40ff38:	e8 62 a8 ff ff       	call   0x40a79f
40ff3d:	59                   	pop    %ecx
40ff3e:	5f                   	pop    %edi
40ff3f:	5e                   	pop    %esi
40ff40:	5b                   	pop    %ebx
40ff41:	c9                   	leave
40ff42:	c3                   	ret
40ff43:	8b ff                	mov    %edi,%edi
40ff45:	55                   	push   %ebp
40ff46:	8b ec                	mov    %esp,%ebp
40ff48:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ff4b:	85 c9                	test   %ecx,%ecx
40ff4d:	74 16                	je     0x40ff65
40ff4f:	81 f9 30 aa 41 00    	cmp    $0x41aa30,%ecx
40ff55:	74 0e                	je     0x40ff65
40ff57:	33 c0                	xor    %eax,%eax
40ff59:	40                   	inc    %eax
40ff5a:	f0 0f c1 81 b0 00 00 	lock xadd %eax,0xb0(%ecx)
40ff61:	00
40ff62:	40                   	inc    %eax
40ff63:	5d                   	pop    %ebp
40ff64:	c3                   	ret
40ff65:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40ff6a:	5d                   	pop    %ebp
40ff6b:	c3                   	ret
40ff6c:	8b ff                	mov    %edi,%edi
40ff6e:	55                   	push   %ebp
40ff6f:	8b ec                	mov    %esp,%ebp
40ff71:	56                   	push   %esi
40ff72:	8b 75 08             	mov    0x8(%ebp),%esi
40ff75:	85 f6                	test   %esi,%esi
40ff77:	74 21                	je     0x40ff9a
40ff79:	81 fe 30 aa 41 00    	cmp    $0x41aa30,%esi
40ff7f:	74 19                	je     0x40ff9a
40ff81:	8b 86 b0 00 00 00    	mov    0xb0(%esi),%eax
40ff87:	90                   	nop
40ff88:	85 c0                	test   %eax,%eax
40ff8a:	75 0e                	jne    0x40ff9a
40ff8c:	56                   	push   %esi
40ff8d:	e8 75 fb ff ff       	call   0x40fb07
40ff92:	56                   	push   %esi
40ff93:	e8 07 a8 ff ff       	call   0x40a79f
40ff98:	59                   	pop    %ecx
40ff99:	59                   	pop    %ecx
40ff9a:	5e                   	pop    %esi
40ff9b:	5d                   	pop    %ebp
40ff9c:	c3                   	ret
40ff9d:	8b ff                	mov    %edi,%edi
40ff9f:	55                   	push   %ebp
40ffa0:	8b ec                	mov    %esp,%ebp
40ffa2:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ffa5:	85 c9                	test   %ecx,%ecx
40ffa7:	74 16                	je     0x40ffbf
40ffa9:	81 f9 30 aa 41 00    	cmp    $0x41aa30,%ecx
40ffaf:	74 0e                	je     0x40ffbf
40ffb1:	83 c8 ff             	or     $0xffffffff,%eax
40ffb4:	f0 0f c1 81 b0 00 00 	lock xadd %eax,0xb0(%ecx)
40ffbb:	00
40ffbc:	48                   	dec    %eax
40ffbd:	5d                   	pop    %ebp
40ffbe:	c3                   	ret
40ffbf:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40ffc4:	5d                   	pop    %ebp
40ffc5:	c3                   	ret
40ffc6:	8b ff                	mov    %edi,%edi
40ffc8:	55                   	push   %ebp
40ffc9:	8b ec                	mov    %esp,%ebp
40ffcb:	8b 45 08             	mov    0x8(%ebp),%eax
40ffce:	85 c0                	test   %eax,%eax
40ffd0:	74 73                	je     0x410045
40ffd2:	f0 ff 48 0c          	lock decl 0xc(%eax)
40ffd6:	8b 48 7c             	mov    0x7c(%eax),%ecx
40ffd9:	85 c9                	test   %ecx,%ecx
40ffdb:	74 03                	je     0x40ffe0
40ffdd:	f0 ff 09             	lock decl (%ecx)
40ffe0:	8b 88 84 00 00 00    	mov    0x84(%eax),%ecx
40ffe6:	85 c9                	test   %ecx,%ecx
40ffe8:	74 03                	je     0x40ffed
40ffea:	f0 ff 09             	lock decl (%ecx)
40ffed:	8b 88 80 00 00 00    	mov    0x80(%eax),%ecx
40fff3:	85 c9                	test   %ecx,%ecx
40fff5:	74 03                	je     0x40fffa
40fff7:	f0 ff 09             	lock decl (%ecx)
40fffa:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx
410000:	85 c9                	test   %ecx,%ecx
410002:	74 03                	je     0x410007
410004:	f0 ff 09             	lock decl (%ecx)
410007:	56                   	push   %esi
410008:	6a 06                	push   $0x6
41000a:	8d 48 28             	lea    0x28(%eax),%ecx
41000d:	5e                   	pop    %esi
41000e:	81 79 f8 e8 12 42 00 	cmpl   $0x4212e8,-0x8(%ecx)
410015:	74 09                	je     0x410020
410017:	8b 11                	mov    (%ecx),%edx
410019:	85 d2                	test   %edx,%edx
41001b:	74 03                	je     0x410020
41001d:	f0 ff 0a             	lock decl (%edx)
410020:	83 79 f4 00          	cmpl   $0x0,-0xc(%ecx)
410024:	74 0a                	je     0x410030
410026:	8b 51 fc             	mov    -0x4(%ecx),%edx
410029:	85 d2                	test   %edx,%edx
41002b:	74 03                	je     0x410030
41002d:	f0 ff 0a             	lock decl (%edx)
410030:	83 c1 10             	add    $0x10,%ecx
410033:	83 ee 01             	sub    $0x1,%esi
410036:	75 d6                	jne    0x41000e
410038:	ff b0 9c 00 00 00    	push   0x9c(%eax)
41003e:	e8 5a ff ff ff       	call   0x40ff9d
410043:	59                   	pop    %ecx
410044:	5e                   	pop    %esi
410045:	5d                   	pop    %ebp
410046:	c3                   	ret
410047:	6a 0c                	push   $0xc
410049:	68 28 02 42 00       	push   $0x420228
41004e:	e8 4d 3e ff ff       	call   0x403ea0
410053:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
410057:	e8 51 c3 ff ff       	call   0x40c3ad
41005c:	8d 78 4c             	lea    0x4c(%eax),%edi
41005f:	8b 0d 68 18 42 00    	mov    0x421868,%ecx
410065:	85 88 50 03 00 00    	test   %ecx,0x350(%eax)
41006b:	74 06                	je     0x410073
41006d:	8b 37                	mov    (%edi),%esi
41006f:	85 f6                	test   %esi,%esi
410071:	75 3d                	jne    0x4100b0
410073:	6a 04                	push   $0x4
410075:	e8 12 df ff ff       	call   0x40df8c
41007a:	59                   	pop    %ecx
41007b:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41007f:	ff 35 b4 23 42 00    	push   0x4223b4
410085:	57                   	push   %edi
410086:	e8 3d 00 00 00       	call   0x4100c8
41008b:	59                   	pop    %ecx
41008c:	59                   	pop    %ecx
41008d:	8b f0                	mov    %eax,%esi
41008f:	89 75 e4             	mov    %esi,-0x1c(%ebp)
410092:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
410099:	e8 09 00 00 00       	call   0x4100a7
41009e:	85 f6                	test   %esi,%esi
4100a0:	74 20                	je     0x4100c2
4100a2:	eb 0c                	jmp    0x4100b0
4100a4:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4100a7:	6a 04                	push   $0x4
4100a9:	e8 26 df ff ff       	call   0x40dfd4
4100ae:	59                   	pop    %ecx
4100af:	c3                   	ret
4100b0:	8b c6                	mov    %esi,%eax
4100b2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4100b5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4100bc:	59                   	pop    %ecx
4100bd:	5f                   	pop    %edi
4100be:	5e                   	pop    %esi
4100bf:	5b                   	pop    %ebx
4100c0:	c9                   	leave
4100c1:	c3                   	ret
4100c2:	e8 63 a4 ff ff       	call   0x40a52a
4100c7:	cc                   	int3
4100c8:	8b ff                	mov    %edi,%edi
4100ca:	55                   	push   %ebp
4100cb:	8b ec                	mov    %esp,%ebp
4100cd:	56                   	push   %esi
4100ce:	8b 75 0c             	mov    0xc(%ebp),%esi
4100d1:	57                   	push   %edi
4100d2:	85 f6                	test   %esi,%esi
4100d4:	74 3c                	je     0x410112
4100d6:	8b 45 08             	mov    0x8(%ebp),%eax
4100d9:	85 c0                	test   %eax,%eax
4100db:	74 35                	je     0x410112
4100dd:	8b 38                	mov    (%eax),%edi
4100df:	3b fe                	cmp    %esi,%edi
4100e1:	75 04                	jne    0x4100e7
4100e3:	8b c6                	mov    %esi,%eax
4100e5:	eb 2d                	jmp    0x410114
4100e7:	56                   	push   %esi
4100e8:	89 30                	mov    %esi,(%eax)
4100ea:	e8 8f fc ff ff       	call   0x40fd7e
4100ef:	59                   	pop    %ecx
4100f0:	85 ff                	test   %edi,%edi
4100f2:	74 ef                	je     0x4100e3
4100f4:	57                   	push   %edi
4100f5:	e8 cc fe ff ff       	call   0x40ffc6
4100fa:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
4100fe:	59                   	pop    %ecx
4100ff:	75 e2                	jne    0x4100e3
410101:	81 ff 28 12 42 00    	cmp    $0x421228,%edi
410107:	74 da                	je     0x4100e3
410109:	57                   	push   %edi
41010a:	e8 ec fc ff ff       	call   0x40fdfb
41010f:	59                   	pop    %ecx
410110:	eb d1                	jmp    0x4100e3
410112:	33 c0                	xor    %eax,%eax
410114:	5f                   	pop    %edi
410115:	5e                   	pop    %esi
410116:	5d                   	pop    %ebp
410117:	c3                   	ret
410118:	8b ff                	mov    %edi,%edi
41011a:	55                   	push   %ebp
41011b:	8b ec                	mov    %esp,%ebp
41011d:	56                   	push   %esi
41011e:	8b 75 0c             	mov    0xc(%ebp),%esi
410121:	85 f6                	test   %esi,%esi
410123:	74 1b                	je     0x410140
410125:	6a e0                	push   $0xffffffe0
410127:	33 d2                	xor    %edx,%edx
410129:	58                   	pop    %eax
41012a:	f7 f6                	div    %esi
41012c:	3b 45 10             	cmp    0x10(%ebp),%eax
41012f:	73 0f                	jae    0x410140
410131:	e8 f9 a5 ff ff       	call   0x40a72f
410136:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
41013c:	33 c0                	xor    %eax,%eax
41013e:	eb 42                	jmp    0x410182
410140:	53                   	push   %ebx
410141:	8b 5d 08             	mov    0x8(%ebp),%ebx
410144:	57                   	push   %edi
410145:	85 db                	test   %ebx,%ebx
410147:	74 0b                	je     0x410154
410149:	53                   	push   %ebx
41014a:	e8 35 4e 00 00       	call   0x414f84
41014f:	59                   	pop    %ecx
410150:	8b f8                	mov    %eax,%edi
410152:	eb 02                	jmp    0x410156
410154:	33 ff                	xor    %edi,%edi
410156:	0f af 75 10          	imul   0x10(%ebp),%esi
41015a:	56                   	push   %esi
41015b:	53                   	push   %ebx
41015c:	e8 56 4e 00 00       	call   0x414fb7
410161:	8b d8                	mov    %eax,%ebx
410163:	59                   	pop    %ecx
410164:	59                   	pop    %ecx
410165:	85 db                	test   %ebx,%ebx
410167:	74 15                	je     0x41017e
410169:	3b fe                	cmp    %esi,%edi
41016b:	73 11                	jae    0x41017e
41016d:	2b f7                	sub    %edi,%esi
41016f:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
410172:	56                   	push   %esi
410173:	6a 00                	push   $0x0
410175:	50                   	push   %eax
410176:	e8 f5 48 ff ff       	call   0x404a70
41017b:	83 c4 0c             	add    $0xc,%esp
41017e:	5f                   	pop    %edi
41017f:	8b c3                	mov    %ebx,%eax
410181:	5b                   	pop    %ebx
410182:	5e                   	pop    %esi
410183:	5d                   	pop    %ebp
410184:	c3                   	ret
410185:	ff 15 2c 91 41 00    	call   *0x41912c
41018b:	85 c0                	test   %eax,%eax
41018d:	a3 3c 25 42 00       	mov    %eax,0x42253c
410192:	0f 95 c0             	setne  %al
410195:	c3                   	ret
410196:	83 25 3c 25 42 00 00 	andl   $0x0,0x42253c
41019d:	b0 01                	mov    $0x1,%al
41019f:	c3                   	ret
4101a0:	8b ff                	mov    %edi,%edi
4101a2:	55                   	push   %ebp
4101a3:	8b ec                	mov    %esp,%ebp
4101a5:	53                   	push   %ebx
4101a6:	56                   	push   %esi
4101a7:	57                   	push   %edi
4101a8:	8b 7d 08             	mov    0x8(%ebp),%edi
4101ab:	3b 7d 0c             	cmp    0xc(%ebp),%edi
4101ae:	74 51                	je     0x410201
4101b0:	8b f7                	mov    %edi,%esi
4101b2:	8b 1e                	mov    (%esi),%ebx
4101b4:	85 db                	test   %ebx,%ebx
4101b6:	74 0e                	je     0x4101c6
4101b8:	8b cb                	mov    %ebx,%ecx
4101ba:	ff 15 54 91 41 00    	call   *0x419154
4101c0:	ff d3                	call   *%ebx
4101c2:	84 c0                	test   %al,%al
4101c4:	74 08                	je     0x4101ce
4101c6:	83 c6 08             	add    $0x8,%esi
4101c9:	3b 75 0c             	cmp    0xc(%ebp),%esi
4101cc:	75 e4                	jne    0x4101b2
4101ce:	3b 75 0c             	cmp    0xc(%ebp),%esi
4101d1:	74 2e                	je     0x410201
4101d3:	3b f7                	cmp    %edi,%esi
4101d5:	74 26                	je     0x4101fd
4101d7:	83 c6 fc             	add    $0xfffffffc,%esi
4101da:	83 7e fc 00          	cmpl   $0x0,-0x4(%esi)
4101de:	74 13                	je     0x4101f3
4101e0:	8b 1e                	mov    (%esi),%ebx
4101e2:	85 db                	test   %ebx,%ebx