40c9ce:	89 45 e8             	mov    %eax,-0x18(%ebp)
40c9d1:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40c9d5:	8b 75 08             	mov    0x8(%ebp),%esi
40c9d8:	8b 06                	mov    (%esi),%eax
40c9da:	8b 38                	mov    (%eax),%edi
40c9dc:	8d 45 d8             	lea    -0x28(%ebp),%eax
40c9df:	50                   	push   %eax
40c9e0:	81 ff 40 e8 40 00    	cmp    $0x40e840,%edi
40c9e6:	75 09                	jne    0x40c9f1
40c9e8:	8b ce                	mov    %esi,%ecx
40c9ea:	e8 51 1e 00 00       	call   0x40e840
40c9ef:	eb 0c                	jmp    0x40c9fd
40c9f1:	8b cf                	mov    %edi,%ecx
40c9f3:	ff 15 20 a5 43 00    	call   *0x43a520
40c9f9:	8b ce                	mov    %esi,%ecx
40c9fb:	ff d7                	call   *%edi
40c9fd:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40ca00:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40ca04:	8b f0                	mov    %eax,%esi
40ca06:	e8 3d 00 00 00       	call   0x40ca48
40ca0b:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40ca0e:	e8 35 00 00 00       	call   0x40ca48
40ca13:	85 f6                	test   %esi,%esi
40ca15:	79 15                	jns    0x40ca2c
40ca17:	8b 4d 04             	mov    0x4(%ebp),%ecx
40ca1a:	ba 32 01 00 00       	mov    $0x132,%edx
40ca1f:	56                   	push   %esi
40ca20:	68 90 56 40 00       	push   $0x405690
40ca25:	e8 e0 f6 01 00       	call   0x42c10a
40ca2a:	eb 02                	jmp    0x40ca2e
40ca2c:	33 f6                	xor    %esi,%esi
40ca2e:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40ca32:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ca35:	85 c9                	test   %ecx,%ecx
40ca37:	74 05                	je     0x40ca3e
40ca39:	e8 e2 00 00 00       	call   0x40cb20
40ca3e:	8b c6                	mov    %esi,%eax
40ca40:	e8 ab e3 00 00       	call   0x41adf0
40ca45:	c2 08 00             	ret    $0x8
40ca48:	8b ff                	mov    %edi,%edi
40ca4a:	53                   	push   %ebx
40ca4b:	8b d9                	mov    %ecx,%ebx
40ca4d:	57                   	push   %edi
40ca4e:	8b 7b 10             	mov    0x10(%ebx),%edi
40ca51:	85 ff                	test   %edi,%edi
40ca53:	74 20                	je     0x40ca75
40ca55:	8b 17                	mov    (%edi),%edx
40ca57:	3b fb                	cmp    %ebx,%edi
40ca59:	56                   	push   %esi
40ca5a:	0f 95 c0             	setne  %al
40ca5d:	0f b6 c0             	movzbl %al,%eax
40ca60:	8b 72 10             	mov    0x10(%edx),%esi
40ca63:	8b ce                	mov    %esi,%ecx
40ca65:	50                   	push   %eax
40ca66:	ff 15 20 a5 43 00    	call   *0x43a520
40ca6c:	8b cf                	mov    %edi,%ecx
40ca6e:	ff d6                	call   *%esi
40ca70:	83 63 10 00          	andl   $0x0,0x10(%ebx)
40ca74:	5e                   	pop    %esi
40ca75:	5f                   	pop    %edi
40ca76:	5b                   	pop    %ebx
40ca77:	c3                   	ret
40ca78:	6a 10                	push   $0x10
40ca7a:	b8 c5 e3 41 00       	mov    $0x41e3c5,%eax
40ca7f:	e8 8a e3 00 00       	call   0x41ae0e
40ca84:	8b f9                	mov    %ecx,%edi
40ca86:	89 7d ec             	mov    %edi,-0x14(%ebp)
40ca89:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40ca8d:	8b 1d 10 8a 43 00    	mov    0x438a10,%ebx
40ca93:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ca97:	8b 35 3c 1a 40 00    	mov    0x401a3c,%esi
40ca9d:	8b ce                	mov    %esi,%ecx
40ca9f:	6a 18                	push   $0x18
40caa1:	ff 15 20 a5 43 00    	call   *0x43a520
40caa7:	ff d6                	call   *%esi
40caa9:	8b f0                	mov    %eax,%esi
40caab:	89 75 ec             	mov    %esi,-0x14(%ebp)
40caae:	85 f6                	test   %esi,%esi
40cab0:	74 63                	je     0x40cb15
40cab2:	33 c0                	xor    %eax,%eax
40cab4:	c7 06 fc 10 40 00    	movl   $0x4010fc,(%esi)
40caba:	40                   	inc    %eax
40cabb:	89 46 04             	mov    %eax,0x4(%esi)
40cabe:	89 46 08             	mov    %eax,0x8(%esi)
40cac1:	8b 45 08             	mov    0x8(%ebp),%eax
40cac4:	c7 46 0c 78 1a 40 00 	movl   $0x401a78,0xc(%esi)
40cacb:	89 5e 10             	mov    %ebx,0x10(%esi)
40cace:	89 46 14             	mov    %eax,0x14(%esi)
40cad1:	83 27 00             	andl   $0x0,(%edi)
40cad4:	8d 5e 0c             	lea    0xc(%esi),%ebx
40cad7:	83 67 04 00          	andl   $0x0,0x4(%edi)
40cadb:	c7 45 f0 02 00 00 00 	movl   $0x2,-0x10(%ebp)
40cae2:	89 75 e8             	mov    %esi,-0x18(%ebp)
40cae5:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40cae8:	85 f6                	test   %esi,%esi
40caea:	74 0b                	je     0x40caf7
40caec:	f0 ff 46 04          	lock incl 0x4(%esi)
40caf0:	8b 4f 04             	mov    0x4(%edi),%ecx
40caf3:	85 c9                	test   %ecx,%ecx
40caf5:	75 22                	jne    0x40cb19
40caf7:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40cafb:	89 77 04             	mov    %esi,0x4(%edi)
40cafe:	89 1f                	mov    %ebx,(%edi)
40cb00:	85 f6                	test   %esi,%esi
40cb02:	74 07                	je     0x40cb0b
40cb04:	8b ce                	mov    %esi,%ecx
40cb06:	e8 15 00 00 00       	call   0x40cb20
40cb0b:	8b c7                	mov    %edi,%eax
40cb0d:	e8 ca e2 00 00       	call   0x41addc
40cb12:	c2 04 00             	ret    $0x4
40cb15:	33 f6                	xor    %esi,%esi
40cb17:	eb b8                	jmp    0x40cad1
40cb19:	e8 02 00 00 00       	call   0x40cb20
40cb1e:	eb d7                	jmp    0x40caf7
40cb20:	8b ff                	mov    %edi,%edi
40cb22:	57                   	push   %edi
40cb23:	8b f9                	mov    %ecx,%edi
40cb25:	83 c8 ff             	or     $0xffffffff,%eax
40cb28:	f0 0f c1 47 04       	lock xadd %eax,0x4(%edi)
40cb2d:	74 02                	je     0x40cb31
40cb2f:	5f                   	pop    %edi
40cb30:	c3                   	ret
40cb31:	8b 07                	mov    (%edi),%eax
40cb33:	56                   	push   %esi
40cb34:	8b 30                	mov    (%eax),%esi
40cb36:	8b ce                	mov    %esi,%ecx
40cb38:	ff 15 20 a5 43 00    	call   *0x43a520
40cb3e:	8b cf                	mov    %edi,%ecx
40cb40:	ff d6                	call   *%esi
40cb42:	5e                   	pop    %esi
40cb43:	8b cf                	mov    %edi,%ecx
40cb45:	5f                   	pop    %edi
40cb46:	e9 00 00 00 00       	jmp    0x40cb4b
40cb4b:	8b ff                	mov    %edi,%edi
40cb4d:	56                   	push   %esi
40cb4e:	8b f1                	mov    %ecx,%esi
40cb50:	83 c8 ff             	or     $0xffffffff,%eax
40cb53:	f0 0f c1 46 08       	lock xadd %eax,0x8(%esi)
40cb58:	75 19                	jne    0x40cb73
40cb5a:	8b 06                	mov    (%esi),%eax
40cb5c:	57                   	push   %edi
40cb5d:	8b 78 04             	mov    0x4(%eax),%edi
40cb60:	81 ff 80 cb 40 00    	cmp    $0x40cb80,%edi
40cb66:	0f 85 3d 39 01 00    	jne    0x4204a9
40cb6c:	5f                   	pop    %edi
40cb6d:	5e                   	pop    %esi
40cb6e:	e9 0d 00 00 00       	jmp    0x40cb80
40cb73:	5e                   	pop    %esi
40cb74:	c3                   	ret
40cb75:	cc                   	int3
40cb76:	cc                   	int3
40cb77:	cc                   	int3
40cb78:	cc                   	int3
40cb79:	cc                   	int3
40cb7a:	cc                   	int3
40cb7b:	cc                   	int3
40cb7c:	cc                   	int3
40cb7d:	cc                   	int3
40cb7e:	cc                   	int3
40cb7f:	cc                   	int3
40cb80:	8b ff                	mov    %edi,%edi
40cb82:	56                   	push   %esi
40cb83:	8b f1                	mov    %ecx,%esi
40cb85:	85 f6                	test   %esi,%esi
40cb87:	74 1a                	je     0x40cba3
40cb89:	8b 06                	mov    (%esi),%eax
40cb8b:	57                   	push   %edi
40cb8c:	6a 01                	push   $0x1
40cb8e:	8b 78 08             	mov    0x8(%eax),%edi
40cb91:	81 ff b0 cb 40 00    	cmp    $0x40cbb0,%edi
40cb97:	0f 85 1e 39 01 00    	jne    0x4204bb
40cb9d:	e8 0e 00 00 00       	call   0x40cbb0
40cba2:	5f                   	pop    %edi
40cba3:	5e                   	pop    %esi
40cba4:	c3                   	ret
40cba5:	cc                   	int3
40cba6:	cc                   	int3
40cba7:	cc                   	int3
40cba8:	cc                   	int3
40cba9:	cc                   	int3
40cbaa:	cc                   	int3
40cbab:	cc                   	int3
40cbac:	cc                   	int3
40cbad:	cc                   	int3
40cbae:	cc                   	int3
40cbaf:	cc                   	int3
40cbb0:	8b ff                	mov    %edi,%edi
40cbb2:	55                   	push   %ebp
40cbb3:	8b ec                	mov    %esp,%ebp
40cbb5:	6a ff                	push   $0xffffffff
40cbb7:	68 6c e1 41 00       	push   $0x41e16c
40cbbc:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40cbc2:	50                   	push   %eax
40cbc3:	56                   	push   %esi
40cbc4:	57                   	push   %edi
40cbc5:	a1 08 85 43 00       	mov    0x438508,%eax
40cbca:	33 c5                	xor    %ebp,%eax
40cbcc:	50                   	push   %eax
40cbcd:	8d 45 f4             	lea    -0xc(%ebp),%eax
40cbd0:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40cbd6:	8b f9                	mov    %ecx,%edi
40cbd8:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40cbdc:	c7 07 0c 11 40 00    	movl   $0x40110c,(%edi)
40cbe2:	74 15                	je     0x40cbf9
40cbe4:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40cbe8:	8b 35 40 1a 40 00    	mov    0x401a40,%esi
40cbee:	8b ce                	mov    %esi,%ecx
40cbf0:	57                   	push   %edi
40cbf1:	ff 15 20 a5 43 00    	call   *0x43a520
40cbf7:	ff d6                	call   *%esi
40cbf9:	8b c7                	mov    %edi,%eax
40cbfb:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40cbfe:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40cc05:	59                   	pop    %ecx
40cc06:	5f                   	pop    %edi
40cc07:	5e                   	pop    %esi
40cc08:	c9                   	leave
40cc09:	c2 04 00             	ret    $0x4
40cc0c:	8b ff                	mov    %edi,%edi
40cc0e:	55                   	push   %ebp
40cc0f:	8b ec                	mov    %esp,%ebp
40cc11:	51                   	push   %ecx
40cc12:	56                   	push   %esi
40cc13:	8b 35 3c 1a 40 00    	mov    0x401a3c,%esi
40cc19:	8b ce                	mov    %esi,%ecx
40cc1b:	6a 08                	push   $0x8
40cc1d:	ff 15 20 a5 43 00    	call   *0x43a520
40cc23:	ff d6                	call   *%esi
40cc25:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cc28:	5e                   	pop    %esi
40cc29:	85 c0                	test   %eax,%eax
40cc2b:	74 19                	je     0x40cc46
40cc2d:	83 20 00             	andl   $0x0,(%eax)
40cc30:	83 60 04 00          	andl   $0x0,0x4(%eax)
40cc34:	85 c0                	test   %eax,%eax
40cc36:	0f 84 90 38 01 00    	je     0x4204cc
40cc3c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40cc3f:	89 48 04             	mov    %ecx,0x4(%eax)
40cc42:	c9                   	leave
40cc43:	c2 04 00             	ret    $0x4
40cc46:	33 c0                	xor    %eax,%eax
40cc48:	eb ea                	jmp    0x40cc34
40cc4a:	33 c0                	xor    %eax,%eax
40cc4c:	39 41 0c             	cmp    %eax,0xc(%ecx)
40cc4f:	0f 94 c0             	sete   %al
40cc52:	c3                   	ret
40cc53:	8b ff                	mov    %edi,%edi
40cc55:	55                   	push   %ebp
40cc56:	8b ec                	mov    %esp,%ebp
40cc58:	57                   	push   %edi
40cc59:	8b b9 80 00 00 00    	mov    0x80(%ecx),%edi
40cc5f:	85 ff                	test   %edi,%edi
40cc61:	78 21                	js     0x40cc84
40cc63:	8b 51 6c             	mov    0x6c(%ecx),%edx
40cc66:	85 d2                	test   %edx,%edx
40cc68:	74 21                	je     0x40cc8b
40cc6a:	8b 45 08             	mov    0x8(%ebp),%eax
40cc6d:	56                   	push   %esi
40cc6e:	89 10                	mov    %edx,(%eax)
40cc70:	8b 49 6c             	mov    0x6c(%ecx),%ecx
40cc73:	51                   	push   %ecx
40cc74:	8b 11                	mov    (%ecx),%edx
40cc76:	8b 72 04             	mov    0x4(%edx),%esi
40cc79:	8b ce                	mov    %esi,%ecx
40cc7b:	ff 15 20 a5 43 00    	call   *0x43a520
40cc81:	ff d6                	call   *%esi
40cc83:	5e                   	pop    %esi
40cc84:	8b c7                	mov    %edi,%eax
40cc86:	5f                   	pop    %edi
40cc87:	5d                   	pop    %ebp
40cc88:	c2 04 00             	ret    $0x4
40cc8b:	bf 02 40 00 80       	mov    $0x80004002,%edi
40cc90:	eb f2                	jmp    0x40cc84
40cc92:	6a 04                	push   $0x4
40cc94:	b8 0c e4 41 00       	mov    $0x41e40c,%eax
40cc99:	e8 70 e1 00 00       	call   0x41ae0e
40cc9e:	8b f1                	mov    %ecx,%esi
40cca0:	89 75 f0             	mov    %esi,-0x10(%ebp)
40cca3:	33 ff                	xor    %edi,%edi
40cca5:	89 7e 14             	mov    %edi,0x14(%esi)
40cca8:	89 7d fc             	mov    %edi,-0x4(%ebp)
40ccab:	89 7e 18             	mov    %edi,0x18(%esi)
40ccae:	8d 4e 1c             	lea    0x1c(%esi),%ecx
40ccb1:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40ccb5:	89 39                	mov    %edi,(%ecx)
40ccb7:	e8 4e cb 00 00       	call   0x41980a
40ccbc:	8d 4e 20             	lea    0x20(%esi),%ecx
40ccbf:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40ccc3:	89 39                	mov    %edi,(%ecx)
40ccc5:	e8 40 cb 00 00       	call   0x41980a
40ccca:	6a 01                	push   $0x1
40cccc:	56                   	push   %esi
40cccd:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40ccd1:	ff 15 b8 a3 43 00    	call   *0x43a3b8
40ccd7:	85 c0                	test   %eax,%eax
40ccd9:	0f 84 05 38 01 00    	je     0x4204e4
40ccdf:	51                   	push   %ecx
40cce0:	57                   	push   %edi
40cce1:	51                   	push   %ecx
40cce2:	8b ce                	mov    %esi,%ecx
40cce4:	e8 08 00 00 00       	call   0x40ccf1
40cce9:	8b c6                	mov    %esi,%eax
40cceb:	e8 ec e0 00 00       	call   0x41addc
40ccf0:	c3                   	ret
40ccf1:	8b ff                	mov    %edi,%edi
40ccf3:	55                   	push   %ebp
40ccf4:	8b ec                	mov    %esp,%ebp
40ccf6:	6a 00                	push   $0x0
40ccf8:	ff 75 0c             	push   0xc(%ebp)
40ccfb:	6a 01                	push   $0x1
40ccfd:	51                   	push   %ecx
40ccfe:	ff 15 d4 a3 43 00    	call   *0x43a3d4
40cd04:	85 c0                	test   %eax,%eax
40cd06:	0f 84 eb 37 01 00    	je     0x4204f7
40cd0c:	5d                   	pop    %ebp
40cd0d:	c2 0c 00             	ret    $0xc
40cd10:	8b ff                	mov    %edi,%edi
40cd12:	55                   	push   %ebp
40cd13:	8b ec                	mov    %esp,%ebp
40cd15:	83 ec 18             	sub    $0x18,%esp
40cd18:	53                   	push   %ebx
40cd19:	56                   	push   %esi
40cd1a:	57                   	push   %edi
40cd1b:	8b f1                	mov    %ecx,%esi
40cd1d:	c7 45 ec 14 00 00 00 	movl   $0x14,-0x14(%ebp)
40cd24:	33 c9                	xor    %ecx,%ecx
40cd26:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cd29:	50                   	push   %eax
40cd2a:	51                   	push   %ecx
40cd2b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40cd2e:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40cd31:	50                   	push   %eax
40cd32:	51                   	push   %ecx
40cd33:	8d 45 f4             	lea    -0xc(%ebp),%eax
40cd36:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40cd39:	50                   	push   %eax
40cd3a:	51                   	push   %ecx
40cd3b:	8d 45 f0             	lea    -0x10(%ebp),%eax
40cd3e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40cd41:	50                   	push   %eax
40cd42:	51                   	push   %ecx
40cd43:	8d 45 ec             	lea    -0x14(%ebp),%eax
40cd46:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40cd49:	50                   	push   %eax
40cd4a:	56                   	push   %esi
40cd4b:	ff 75 08             	push   0x8(%ebp)
40cd4e:	ff 15 9c a3 43 00    	call   *0x43a39c
40cd54:	ff 75 f0             	push   -0x10(%ebp)
40cd57:	8d 4e 1c             	lea    0x1c(%esi),%ecx
40cd5a:	e8 96 00 00 00       	call   0x40cdf5