40ce99:	5b                   	pop    %ebx
40ce9a:	8b e5                	mov    %ebp,%esp
40ce9c:	5d                   	pop    %ebp
40ce9d:	c2 20 00             	ret    $0x20
40cea0:	8b ff                	mov    %edi,%edi
40cea2:	55                   	push   %ebp
40cea3:	8b ec                	mov    %esp,%ebp
40cea5:	56                   	push   %esi
40cea6:	57                   	push   %edi
40cea7:	8b 7d 0c             	mov    0xc(%ebp),%edi
40ceaa:	33 f6                	xor    %esi,%esi
40ceac:	85 ff                	test   %edi,%edi
40ceae:	0f 84 67 82 01 00    	je     0x42511b
40ceb4:	ff 15 fc 10 45 00    	call   *0x4510fc
40ceba:	89 07                	mov    %eax,(%edi)
40cebc:	8b 0d 00 f0 44 00    	mov    0x44f000,%ecx
40cec2:	81 f9 00 f0 44 00    	cmp    $0x44f000,%ecx
40cec8:	74 0a                	je     0x40ced4
40ceca:	f6 41 1c 04          	testb  $0x4,0x1c(%ecx)
40cece:	0f 85 60 82 01 00    	jne    0x425134
40ced4:	5f                   	pop    %edi
40ced5:	8b c6                	mov    %esi,%eax
40ced7:	5e                   	pop    %esi
40ced8:	5d                   	pop    %ebp
40ced9:	c2 08 00             	ret    $0x8
40cedc:	cc                   	int3
40cedd:	cc                   	int3
40cede:	cc                   	int3
40cedf:	cc                   	int3
40cee0:	8b ff                	mov    %edi,%edi
40cee2:	55                   	push   %ebp
40cee3:	8b ec                	mov    %esp,%ebp
40cee5:	56                   	push   %esi
40cee6:	57                   	push   %edi
40cee7:	8b 7d 0c             	mov    0xc(%ebp),%edi
40ceea:	33 f6                	xor    %esi,%esi
40ceec:	85 ff                	test   %edi,%edi
40ceee:	0f 84 63 82 01 00    	je     0x425157
40cef4:	ff 15 fc 10 45 00    	call   *0x4510fc
40cefa:	89 07                	mov    %eax,(%edi)
40cefc:	8b 0d 00 f0 44 00    	mov    0x44f000,%ecx
40cf02:	81 f9 00 f0 44 00    	cmp    $0x44f000,%ecx
40cf08:	74 0a                	je     0x40cf14
40cf0a:	f6 41 1c 04          	testb  $0x4,0x1c(%ecx)
40cf0e:	0f 85 5c 82 01 00    	jne    0x425170
40cf14:	5f                   	pop    %edi
40cf15:	8b c6                	mov    %esi,%eax
40cf17:	5e                   	pop    %esi
40cf18:	5d                   	pop    %ebp
40cf19:	c2 08 00             	ret    $0x8
40cf1c:	cc                   	int3
40cf1d:	cc                   	int3
40cf1e:	cc                   	int3
40cf1f:	cc                   	int3
40cf20:	8b ff                	mov    %edi,%edi
40cf22:	55                   	push   %ebp
40cf23:	8b ec                	mov    %esp,%ebp
40cf25:	8b 4d 08             	mov    0x8(%ebp),%ecx
40cf28:	33 c0                	xor    %eax,%eax
40cf2a:	40                   	inc    %eax
40cf2b:	f0 0f c1 41 14       	lock xadd %eax,0x14(%ecx)
40cf30:	40                   	inc    %eax
40cf31:	5d                   	pop    %ebp
40cf32:	c2 04 00             	ret    $0x4
40cf35:	cc                   	int3
40cf36:	cc                   	int3
40cf37:	cc                   	int3
40cf38:	cc                   	int3
40cf39:	cc                   	int3
40cf3a:	cc                   	int3
40cf3b:	cc                   	int3
40cf3c:	cc                   	int3
40cf3d:	cc                   	int3
40cf3e:	cc                   	int3
40cf3f:	cc                   	int3
40cf40:	6a 00                	push   $0x0
40cf42:	68 10 27 00 00       	push   $0x2710
40cf47:	ff 15 54 30 45 00    	call   *0x453054
40cf4d:	6a 02                	push   $0x2
40cf4f:	58                   	pop    %eax
40cf50:	c2 04 00             	ret    $0x4
40cf53:	cc                   	int3
40cf54:	cc                   	int3
40cf55:	cc                   	int3
40cf56:	cc                   	int3
40cf57:	cc                   	int3
40cf58:	cc                   	int3
40cf59:	cc                   	int3
40cf5a:	cc                   	int3
40cf5b:	cc                   	int3
40cf5c:	cc                   	int3
40cf5d:	cc                   	int3
40cf5e:	cc                   	int3
40cf5f:	cc                   	int3
40cf60:	8b 41 1c             	mov    0x1c(%ecx),%eax
40cf63:	c7 41 24 01 00 00 00 	movl   $0x1,0x24(%ecx)
40cf6a:	c3                   	ret
40cf6b:	83 c8 ff             	or     $0xffffffff,%eax
40cf6e:	c7 01 d0 13 40 00    	movl   $0x4013d0,(%ecx)
40cf74:	66 89 41 04          	mov    %ax,0x4(%ecx)
40cf78:	33 d2                	xor    %edx,%edx
40cf7a:	66 89 41 06          	mov    %ax,0x6(%ecx)
40cf7e:	66 89 41 08          	mov    %ax,0x8(%ecx)
40cf82:	66 89 41 0a          	mov    %ax,0xa(%ecx)
40cf86:	66 89 41 0c          	mov    %ax,0xc(%ecx)
40cf8a:	66 89 41 0e          	mov    %ax,0xe(%ecx)
40cf8e:	66 89 41 10          	mov    %ax,0x10(%ecx)
40cf92:	66 89 41 12          	mov    %ax,0x12(%ecx)
40cf96:	33 c0                	xor    %eax,%eax
40cf98:	66 89 41 14          	mov    %ax,0x14(%ecx)
40cf9c:	40                   	inc    %eax
40cf9d:	89 41 1c             	mov    %eax,0x1c(%ecx)
40cfa0:	89 41 20             	mov    %eax,0x20(%ecx)
40cfa3:	8b c1                	mov    %ecx,%eax
40cfa5:	89 51 18             	mov    %edx,0x18(%ecx)
40cfa8:	89 51 24             	mov    %edx,0x24(%ecx)
40cfab:	89 51 28             	mov    %edx,0x28(%ecx)
40cfae:	89 51 2c             	mov    %edx,0x2c(%ecx)
40cfb1:	89 51 30             	mov    %edx,0x30(%ecx)
40cfb4:	89 51 34             	mov    %edx,0x34(%ecx)
40cfb7:	c3                   	ret
40cfb8:	8b ff                	mov    %edi,%edi
40cfba:	55                   	push   %ebp
40cfbb:	8b ec                	mov    %esp,%ebp
40cfbd:	83 ec 18             	sub    $0x18,%esp
40cfc0:	53                   	push   %ebx
40cfc1:	56                   	push   %esi
40cfc2:	57                   	push   %edi
40cfc3:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cfc6:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40cfc9:	50                   	push   %eax
40cfca:	68 19 00 02 00       	push   $0x20019
40cfcf:	33 f6                	xor    %esi,%esi
40cfd1:	8b fa                	mov    %edx,%edi
40cfd3:	56                   	push   %esi
40cfd4:	68 f8 63 40 00       	push   $0x4063f8
40cfd9:	68 02 00 00 80       	push   $0x80000002
40cfde:	89 7d ec             	mov    %edi,-0x14(%ebp)
40cfe1:	89 75 f8             	mov    %esi,-0x8(%ebp)
40cfe4:	ff 15 10 11 45 00    	call   *0x451110
40cfea:	33 db                	xor    %ebx,%ebx
40cfec:	43                   	inc    %ebx
40cfed:	85 c0                	test   %eax,%eax
40cfef:	75 3e                	jne    0x40d02f
40cff1:	8d 45 f8             	lea    -0x8(%ebp),%eax
40cff4:	50                   	push   %eax
40cff5:	56                   	push   %esi
40cff6:	8d 45 f4             	lea    -0xc(%ebp),%eax
40cff9:	50                   	push   %eax
40cffa:	56                   	push   %esi
40cffb:	ff 75 f0             	push   -0x10(%ebp)
40cffe:	ff 75 fc             	push   -0x4(%ebp)
40d001:	ff 15 0c 11 45 00    	call   *0x45110c
40d007:	ff 75 fc             	push   -0x4(%ebp)
40d00a:	89 45 e8             	mov    %eax,-0x18(%ebp)
40d00d:	ff 15 14 11 45 00    	call   *0x451114
40d013:	8b 45 e8             	mov    -0x18(%ebp),%eax
40d016:	85 c0                	test   %eax,%eax
40d018:	75 0e                	jne    0x40d028
40d01a:	39 5d f4             	cmp    %ebx,-0xc(%ebp)
40d01d:	75 10                	jne    0x40d02f
40d01f:	89 37                	mov    %esi,(%edi)
40d021:	33 c0                	xor    %eax,%eax
40d023:	5f                   	pop    %edi
40d024:	5e                   	pop    %esi
40d025:	5b                   	pop    %ebx
40d026:	c9                   	leave
40d027:	c3                   	ret
40d028:	3d ea 00 00 00       	cmp    $0xea,%eax
40d02d:	74 eb                	je     0x40d01a
40d02f:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d032:	50                   	push   %eax
40d033:	68 19 00 02 00       	push   $0x20019
40d038:	56                   	push   %esi
40d039:	68 20 5f 40 00       	push   $0x405f20
40d03e:	68 02 00 00 80       	push   $0x80000002
40d043:	ff 15 10 11 45 00    	call   *0x451110
40d049:	85 c0                	test   %eax,%eax
40d04b:	75 3b                	jne    0x40d088
40d04d:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d050:	89 75 f8             	mov    %esi,-0x8(%ebp)
40d053:	50                   	push   %eax
40d054:	56                   	push   %esi
40d055:	8d 45 f4             	lea    -0xc(%ebp),%eax
40d058:	50                   	push   %eax
40d059:	56                   	push   %esi
40d05a:	ff 75 f0             	push   -0x10(%ebp)
40d05d:	ff 75 fc             	push   -0x4(%ebp)
40d060:	ff 15 0c 11 45 00    	call   *0x45110c
40d066:	ff 75 fc             	push   -0x4(%ebp)
40d069:	89 45 e8             	mov    %eax,-0x18(%ebp)
40d06c:	ff 15 14 11 45 00    	call   *0x451114
40d072:	8b 45 e8             	mov    -0x18(%ebp),%eax
40d075:	85 c0                	test   %eax,%eax
40d077:	0f 84 f3 ac 01 00    	je     0x427d70
40d07d:	3d ea 00 00 00       	cmp    $0xea,%eax
40d082:	0f 84 e8 ac 01 00    	je     0x427d70
40d088:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d08b:	50                   	push   %eax
40d08c:	68 19 00 02 00       	push   $0x20019
40d091:	56                   	push   %esi
40d092:	68 10 61 40 00       	push   $0x406110
40d097:	68 02 00 00 80       	push   $0x80000002
40d09c:	ff 15 10 11 45 00    	call   *0x451110
40d0a2:	85 c0                	test   %eax,%eax
40d0a4:	0f 85 ef ac 01 00    	jne    0x427d99
40d0aa:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d0ad:	89 75 f0             	mov    %esi,-0x10(%ebp)
40d0b0:	50                   	push   %eax
40d0b1:	8d 45 f0             	lea    -0x10(%ebp),%eax
40d0b4:	c7 45 f8 04 00 00 00 	movl   $0x4,-0x8(%ebp)
40d0bb:	50                   	push   %eax
40d0bc:	8d 45 f4             	lea    -0xc(%ebp),%eax
40d0bf:	50                   	push   %eax
40d0c0:	56                   	push   %esi
40d0c1:	68 e8 61 40 00       	push   $0x4061e8
40d0c6:	ff 75 fc             	push   -0x4(%ebp)
40d0c9:	ff 15 0c 11 45 00    	call   *0x45110c
40d0cf:	ff 75 fc             	push   -0x4(%ebp)
40d0d2:	8b f8                	mov    %eax,%edi
40d0d4:	ff 15 14 11 45 00    	call   *0x451114
40d0da:	85 ff                	test   %edi,%edi
40d0dc:	0f 85 9e ac 01 00    	jne    0x427d80
40d0e2:	83 7d f4 04          	cmpl   $0x4,-0xc(%ebp)
40d0e6:	75 08                	jne    0x40d0f0
40d0e8:	33 db                	xor    %ebx,%ebx
40d0ea:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
40d0ed:	0f 94 c3             	sete   %bl
40d0f0:	8b 45 ec             	mov    -0x14(%ebp),%eax
40d0f3:	89 18                	mov    %ebx,(%eax)
40d0f5:	8b c6                	mov    %esi,%eax
40d0f7:	e9 27 ff ff ff       	jmp    0x40d023
40d0fc:	cc                   	int3
40d0fd:	cc                   	int3
40d0fe:	cc                   	int3
40d0ff:	cc                   	int3
40d100:	8b ff                	mov    %edi,%edi
40d102:	55                   	push   %ebp
40d103:	8b ec                	mov    %esp,%ebp
40d105:	83 e4 f8             	and    $0xfffffff8,%esp
40d108:	83 ec 44             	sub    $0x44,%esp
40d10b:	53                   	push   %ebx
40d10c:	56                   	push   %esi
40d10d:	8b d9                	mov    %ecx,%ebx
40d10f:	c7 44 24 1c 00 00 00 	movl   $0x0,0x1c(%esp)
40d116:	00
40d117:	57                   	push   %edi
40d118:	8d 44 24 40          	lea    0x40(%esp),%eax
40d11c:	89 5c 24 24          	mov    %ebx,0x24(%esp)
40d120:	50                   	push   %eax
40d121:	c7 43 08 01 00 00 00 	movl   $0x1,0x8(%ebx)
40d128:	ff 15 00 30 45 00    	call   *0x453000
40d12e:	8b 45 10             	mov    0x10(%ebp),%eax
40d131:	8d 4c 24 30          	lea    0x30(%esp),%ecx
40d135:	51                   	push   %ecx
40d136:	8d 4c 24 30          	lea    0x30(%esp),%ecx
40d13a:	c7 44 24 30 00 00 00 	movl   $0x0,0x30(%esp)
40d141:	00
40d142:	51                   	push   %ecx
40d143:	8b 30                	mov    (%eax),%esi
40d145:	8d 4c 24 48          	lea    0x48(%esp),%ecx
40d149:	51                   	push   %ecx
40d14a:	6a 00                	push   $0x0
40d14c:	68 94 65 40 00       	push   $0x406594
40d151:	8b 76 10             	mov    0x10(%esi),%esi
40d154:	8b ce                	mov    %esi,%ecx
40d156:	50                   	push   %eax
40d157:	c7 44 24 48 00 00 00 	movl   $0x0,0x48(%esp)
40d15e:	00
40d15f:	ff 15 c4 12 45 00    	call   *0x4512c4
40d165:	ff d6                	call   *%esi
40d167:	85 c0                	test   %eax,%eax
40d169:	0f 88 61 ac 01 00    	js     0x427dd0
40d16f:	66 8b 44 24 40       	mov    0x40(%esp),%ax
40d174:	66 83 f8 0b          	cmp    $0xb,%ax
40d178:	0f 85 32 ac 01 00    	jne    0x427db0
40d17e:	66 83 7c 24 48 ff    	cmpw   $0xffff,0x48(%esp)
40d184:	0f 85 aa 04 00 00    	jne    0x40d634
40d18a:	b8 01 00 00 00       	mov    $0x1,%eax
40d18f:	89 43 0c             	mov    %eax,0xc(%ebx)
40d192:	33 ff                	xor    %edi,%edi
40d194:	8d 44 24 40          	lea    0x40(%esp),%eax
40d198:	50                   	push   %eax
40d199:	ff 15 1c 30 45 00    	call   *0x45301c
40d19f:	85 ff                	test   %edi,%edi
40d1a1:	0f 88 94 04 00 00    	js     0x40d63b
40d1a7:	8d 44 24 40          	lea    0x40(%esp),%eax
40d1ab:	50                   	push   %eax
40d1ac:	ff 15 00 30 45 00    	call   *0x453000
40d1b2:	8b 45 10             	mov    0x10(%ebp),%eax
40d1b5:	8d 4c 24 30          	lea    0x30(%esp),%ecx
40d1b9:	51                   	push   %ecx
40d1ba:	8d 4c 24 30          	lea    0x30(%esp),%ecx
40d1be:	c7 44 24 30 00 00 00 	movl   $0x0,0x30(%esp)
40d1c5:	00
40d1c6:	51                   	push   %ecx
40d1c7:	8b 30                	mov    (%eax),%esi
40d1c9:	8d 4c 24 48          	lea    0x48(%esp),%ecx
40d1cd:	51                   	push   %ecx
40d1ce:	6a 00                	push   $0x0
40d1d0:	68 7c 65 40 00       	push   $0x40657c
40d1d5:	8b 76 10             	mov    0x10(%esi),%esi
40d1d8:	8b ce                	mov    %esi,%ecx
40d1da:	50                   	push   %eax
40d1db:	c7 44 24 48 00 00 00 	movl   $0x0,0x48(%esp)
40d1e2:	00
40d1e3:	ff 15 c4 12 45 00    	call   *0x4512c4
40d1e9:	ff d6                	call   *%esi
40d1eb:	85 c0                	test   %eax,%eax
40d1ed:	0f 88 13 ac 01 00    	js     0x427e06
40d1f3:	66 8b 44 24 40       	mov    0x40(%esp),%ax
40d1f8:	66 83 f8 0b          	cmp    $0xb,%ax
40d1fc:	0f 85 eb ab 01 00    	jne    0x427ded
40d202:	66 83 7c 24 48 ff    	cmpw   $0xffff,0x48(%esp)
40d208:	0f 85 d8 ab 01 00    	jne    0x427de6
40d20e:	b8 01 00 00 00       	mov    $0x1,%eax
40d213:	89 43 10             	mov    %eax,0x10(%ebx)
40d216:	8d 44 24 40          	lea    0x40(%esp),%eax
40d21a:	50                   	push   %eax
40d21b:	ff 15 1c 30 45 00    	call   *0x45301c
40d221:	85 ff                	test   %edi,%edi
40d223:	0f 88 12 04 00 00    	js     0x40d63b
40d229:	8d 44 24 40          	lea    0x40(%esp),%eax
40d22d:	50                   	push   %eax
40d22e:	ff 15 00 30 45 00    	call   *0x453000
40d234:	8b 45 10             	mov    0x10(%ebp),%eax
40d237:	8d 4c 24 30          	lea    0x30(%esp),%ecx
40d23b:	51                   	push   %ecx
40d23c:	8d 4c 24 30          	lea    0x30(%esp),%ecx
40d240:	c7 44 24 30 00 00 00 	movl   $0x0,0x30(%esp)
40d247:	00
40d248:	51                   	push   %ecx
40d249:	8b 30                	mov    (%eax),%esi
40d24b:	8d 4c 24 48          	lea    0x48(%esp),%ecx
40d24f:	51                   	push   %ecx
40d250:	6a 00                	push   $0x0
40d252:	68 5c 65 40 00       	push   $0x40655c
40d257:	8b 76 10             	mov    0x10(%esi),%esi
40d25a:	8b ce                	mov    %esi,%ecx
40d25c:	50                   	push   %eax
40d25d:	c7 44 24 48 00 00 00 	movl   $0x0,0x48(%esp)
40d264:	00
40d265:	ff 15 c4 12 45 00    	call   *0x4512c4
40d26b:	ff d6                	call   *%esi
40d26d:	85 c0                	test   %eax,%eax
40d26f:	0f 88 c0 ab 01 00    	js     0x427e35
40d275:	66 8b 44 24 40       	mov    0x40(%esp),%ax
40d27a:	66 83 f8 0b          	cmp    $0xb,%ax
40d27e:	0f 85 98 ab 01 00    	jne    0x427e1c
40d284:	33 c0                	xor    %eax,%eax