452d8b:	74 16                	je     0x452da3
452d8d:	89 9d 6c ff ff ff    	mov    %ebx,-0x94(%ebp)
452d93:	8b 01                	mov    (%ecx),%eax
452d95:	51                   	push   %ecx
452d96:	8b 70 08             	mov    0x8(%eax),%esi
452d99:	8b ce                	mov    %esi,%ecx
452d9b:	ff 15 2c 81 4a 00    	call   *0x4a812c
452da1:	ff d6                	call   *%esi
452da3:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
452da7:	8b 8d 68 ff ff ff    	mov    -0x98(%ebp),%ecx
452dad:	85 c9                	test   %ecx,%ecx
452daf:	74 16                	je     0x452dc7
452db1:	89 9d 68 ff ff ff    	mov    %ebx,-0x98(%ebp)
452db7:	8b 01                	mov    (%ecx),%eax
452db9:	51                   	push   %ecx
452dba:	8b 70 08             	mov    0x8(%eax),%esi
452dbd:	8b ce                	mov    %esi,%ecx
452dbf:	ff 15 2c 81 4a 00    	call   *0x4a812c
452dc5:	ff d6                	call   *%esi
452dc7:	8b f3                	mov    %ebx,%esi
452dc9:	53                   	push   %ebx
452dca:	6a 01                	push   $0x1
452dcc:	8d 4d d0             	lea    -0x30(%ebp),%ecx
452dcf:	e8 f0 99 fc ff       	call   0x41c7c4
452dd4:	8b c6                	mov    %esi,%eax
452dd6:	eb 20                	jmp    0x452df8
452dd8:	51                   	push   %ecx
452dd9:	8b 4d 04             	mov    0x4(%ebp),%ecx
452ddc:	ba 08 0c 00 00       	mov    $0xc08,%edx
452de1:	e8 74 24 00 00       	call   0x45525a
452de6:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
452dec:	b8 f2 2d 45 00       	mov    $0x452df2,%eax
452df1:	c3                   	ret
452df2:	8b 85 60 ff ff ff    	mov    -0xa0(%ebp),%eax
452df8:	e8 c7 d6 03 00       	call   0x4904c4
452dfd:	c2 10 00             	ret    $0x10
452e00:	50                   	push   %eax
452e01:	51                   	push   %ecx
452e02:	ba d7 0b 00 00       	mov    $0xbd7,%edx
452e07:	e8 6c 26 00 00       	call   0x455478
452e0c:	cc                   	int3
452e0d:	6a 08                	push   $0x8
452e0f:	b8 06 3e 49 00       	mov    $0x493e06,%eax
452e14:	e8 ba d6 03 00       	call   0x4904d3
452e19:	8b 75 08             	mov    0x8(%ebp),%esi
452e1c:	89 75 f0             	mov    %esi,-0x10(%ebp)
452e1f:	33 c0                	xor    %eax,%eax
452e21:	8d 7e 08             	lea    0x8(%esi),%edi
452e24:	89 45 fc             	mov    %eax,-0x4(%ebp)
452e27:	83 7e 1c 08          	cmpl   $0x8,0x1c(%esi)
452e2b:	72 02                	jb     0x452e2f
452e2d:	8b 3f                	mov    (%edi),%edi
452e2f:	50                   	push   %eax
452e30:	50                   	push   %eax
452e31:	ff 15 7c 7e 4a 00    	call   *0x4a7e7c
452e37:	89 45 ec             	mov    %eax,-0x14(%ebp)
452e3a:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
452e3e:	85 c0                	test   %eax,%eax
452e40:	78 36                	js     0x452e78
452e42:	ff 76 24             	push   0x24(%esi)
452e45:	0f b6 46 20          	movzbl 0x20(%esi),%eax
452e49:	8b 0e                	mov    (%esi),%ecx
452e4b:	50                   	push   %eax
452e4c:	6a 00                	push   $0x0
452e4e:	57                   	push   %edi
452e4f:	e8 2d fb ff ff       	call   0x452981
452e54:	ff 15 8c 7e 4a 00    	call   *0x4a7e8c
452e5a:	6a 00                	push   $0x0
452e5c:	6a 01                	push   $0x1
452e5e:	8d 4e 04             	lea    0x4(%esi),%ecx
452e61:	e8 5e 99 fc ff       	call   0x41c7c4
452e66:	56                   	push   %esi
452e67:	ff 15 10 74 4a 00    	call   *0x4a7410
452e6d:	59                   	pop    %ecx
452e6e:	33 c0                	xor    %eax,%eax
452e70:	e8 2c d6 03 00       	call   0x4904a1
452e75:	c2 04 00             	ret    $0x4
452e78:	50                   	push   %eax
452e79:	51                   	push   %ecx
452e7a:	8b 4d 04             	mov    0x4(%ebp),%ecx
452e7d:	ba b6 0b 00 00       	mov    $0xbb6,%edx
452e82:	e8 f1 25 00 00       	call   0x455478
452e87:	cc                   	int3
452e88:	cc                   	int3
452e89:	cc                   	int3
452e8a:	cc                   	int3
452e8b:	cc                   	int3
452e8c:	cc                   	int3
452e8d:	cc                   	int3
452e8e:	cc                   	int3
452e8f:	cc                   	int3
452e90:	8b ff                	mov    %edi,%edi
452e92:	55                   	push   %ebp
452e93:	8b ec                	mov    %esp,%ebp
452e95:	5d                   	pop    %ebp
452e96:	e9 72 ff ff ff       	jmp    0x452e0d
452e9b:	8b ff                	mov    %edi,%edi
452e9d:	56                   	push   %esi
452e9e:	8b 31                	mov    (%ecx),%esi
452ea0:	85 f6                	test   %esi,%esi
452ea2:	74 14                	je     0x452eb8
452ea4:	6a 00                	push   $0x0
452ea6:	6a 01                	push   $0x1
452ea8:	8d 4e 04             	lea    0x4(%esi),%ecx
452eab:	e8 14 99 fc ff       	call   0x41c7c4
452eb0:	56                   	push   %esi
452eb1:	ff 15 10 74 4a 00    	call   *0x4a7410
452eb7:	59                   	pop    %ecx
452eb8:	5e                   	pop    %esi
452eb9:	c3                   	ret
452eba:	8b ff                	mov    %edi,%edi
452ebc:	57                   	push   %edi
452ebd:	8b 39                	mov    (%ecx),%edi
452ebf:	8b 07                	mov    (%edi),%eax
452ec1:	85 c0                	test   %eax,%eax
452ec3:	74 15                	je     0x452eda
452ec5:	83 27 00             	andl   $0x0,(%edi)
452ec8:	8b 08                	mov    (%eax),%ecx
452eca:	56                   	push   %esi
452ecb:	50                   	push   %eax
452ecc:	8b 71 08             	mov    0x8(%ecx),%esi
452ecf:	8b ce                	mov    %esi,%ecx
452ed1:	ff 15 2c 81 4a 00    	call   *0x4a812c
452ed7:	ff d6                	call   *%esi
452ed9:	5e                   	pop    %esi
452eda:	8b c7                	mov    %edi,%eax
452edc:	5f                   	pop    %edi
452edd:	c3                   	ret
452ede:	cc                   	int3
452edf:	cc                   	int3
452ee0:	8b ff                	mov    %edi,%edi
452ee2:	55                   	push   %ebp
452ee3:	8b ec                	mov    %esp,%ebp
452ee5:	ff 75 10             	push   0x10(%ebp)
452ee8:	8b 4d 08             	mov    0x8(%ebp),%ecx
452eeb:	ba 30 35 40 00       	mov    $0x403530,%edx
452ef0:	ff 75 0c             	push   0xc(%ebp)
452ef3:	e8 31 f8 fe ff       	call   0x442729
452ef8:	5d                   	pop    %ebp
452ef9:	c2 0c 00             	ret    $0xc
452efc:	cc                   	int3
452efd:	cc                   	int3
452efe:	cc                   	int3
452eff:	cc                   	int3
452f00:	6a 00                	push   $0x0
452f02:	b8 74 2b 49 00       	mov    $0x492b74,%eax
452f07:	e8 c7 d5 03 00       	call   0x4904d3
452f0c:	8b 75 08             	mov    0x8(%ebp),%esi
452f0f:	83 cf ff             	or     $0xffffffff,%edi
452f12:	8d 46 04             	lea    0x4(%esi),%eax
452f15:	f0 0f c1 38          	lock xadd %edi,(%eax)
452f19:	4f                   	dec    %edi
452f1a:	75 4e                	jne    0x452f6a
452f1c:	f0 ff 05 8c 47 4a 00 	lock incl 0x4a478c
452f23:	85 f6                	test   %esi,%esi
452f25:	74 3c                	je     0x452f63
452f27:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
452f2b:	8d 4e 24             	lea    0x24(%esi),%ecx
452f2e:	c7 06 ac 35 40 00    	movl   $0x4035ac,(%esi)
452f34:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
452f3a:	e8 0c 63 fc ff       	call   0x41924b
452f3f:	f0 ff 0d 8c 47 4a 00 	lock decl 0x4a478c
452f46:	8d 4e 38             	lea    0x38(%esi),%ecx
452f49:	c7 06 88 5f 40 00    	movl   $0x405f88,(%esi)
452f4f:	e8 bb 6a 02 00       	call   0x479a0f
452f54:	8b ce                	mov    %esi,%ecx
452f56:	e8 b0 64 02 00       	call   0x47940b
452f5b:	56                   	push   %esi
452f5c:	ff 15 10 74 4a 00    	call   *0x4a7410
452f62:	59                   	pop    %ecx
452f63:	f0 ff 0d 8c 47 4a 00 	lock decl 0x4a478c
452f6a:	8b c7                	mov    %edi,%eax
452f6c:	e8 30 d5 03 00       	call   0x4904a1
452f71:	c2 04 00             	ret    $0x4
452f74:	8b ff                	mov    %edi,%edi
452f76:	55                   	push   %ebp
452f77:	8b ec                	mov    %esp,%ebp
452f79:	51                   	push   %ecx
452f7a:	56                   	push   %esi
452f7b:	57                   	push   %edi
452f7c:	8b f9                	mov    %ecx,%edi
452f7e:	8b 4f 04             	mov    0x4(%edi),%ecx
452f81:	8b 77 08             	mov    0x8(%edi),%esi
452f84:	85 c9                	test   %ecx,%ecx
452f86:	74 2f                	je     0x452fb7
452f88:	8b 47 0c             	mov    0xc(%edi),%eax
452f8b:	8b d6                	mov    %esi,%edx
452f8d:	2b d1                	sub    %ecx,%edx
452f8f:	2b c1                	sub    %ecx,%eax
452f91:	c1 fa 02             	sar    $0x2,%edx
452f94:	c1 f8 02             	sar    $0x2,%eax
452f97:	3b d0                	cmp    %eax,%edx
452f99:	73 1c                	jae    0x452fb7
452f9b:	ff 75 fc             	push   -0x4(%ebp)
452f9e:	33 d2                	xor    %edx,%edx
452fa0:	ff 75 fc             	push   -0x4(%ebp)
452fa3:	42                   	inc    %edx
452fa4:	51                   	push   %ecx
452fa5:	ff 75 08             	push   0x8(%ebp)
452fa8:	8b ce                	mov    %esi,%ecx
452faa:	e8 ca 19 00 00       	call   0x454979
452faf:	83 c6 04             	add    $0x4,%esi
452fb2:	89 77 08             	mov    %esi,0x8(%edi)
452fb5:	eb 0c                	jmp    0x452fc3
452fb7:	ff 75 08             	push   0x8(%ebp)
452fba:	51                   	push   %ecx
452fbb:	56                   	push   %esi
452fbc:	8b cf                	mov    %edi,%ecx
452fbe:	e8 2f 0a 00 00       	call   0x4539f2
452fc3:	5f                   	pop    %edi
452fc4:	5e                   	pop    %esi
452fc5:	c9                   	leave
452fc6:	c2 04 00             	ret    $0x4
452fc9:	8b ff                	mov    %edi,%edi
452fcb:	56                   	push   %esi
452fcc:	57                   	push   %edi
452fcd:	8b f9                	mov    %ecx,%edi
452fcf:	8b 77 04             	mov    0x4(%edi),%esi
452fd2:	85 f6                	test   %esi,%esi
452fd4:	74 23                	je     0x452ff9
452fd6:	53                   	push   %ebx
452fd7:	8b 5f 08             	mov    0x8(%edi),%ebx
452fda:	3b f3                	cmp    %ebx,%esi
452fdc:	74 12                	je     0x452ff0
452fde:	8b ce                	mov    %esi,%ecx
452fe0:	ff 15 1c 74 4a 00    	call   *0x4a741c
452fe6:	83 c6 04             	add    $0x4,%esi
452fe9:	3b f3                	cmp    %ebx,%esi
452feb:	75 f1                	jne    0x452fde
452fed:	8b 77 04             	mov    0x4(%edi),%esi
452ff0:	56                   	push   %esi
452ff1:	ff 15 10 74 4a 00    	call   *0x4a7410
452ff7:	59                   	pop    %ecx
452ff8:	5b                   	pop    %ebx
452ff9:	33 c0                	xor    %eax,%eax
452ffb:	89 47 04             	mov    %eax,0x4(%edi)
452ffe:	89 47 08             	mov    %eax,0x8(%edi)
453001:	89 47 0c             	mov    %eax,0xc(%edi)
453004:	5f                   	pop    %edi
453005:	5e                   	pop    %esi
453006:	c3                   	ret
453007:	8b ff                	mov    %edi,%edi
453009:	55                   	push   %ebp
45300a:	8b ec                	mov    %esp,%ebp
45300c:	6a ff                	push   $0xffffffff
45300e:	68 7b 13 49 00       	push   $0x49137b
453013:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
453019:	50                   	push   %eax
45301a:	51                   	push   %ecx
45301b:	56                   	push   %esi
45301c:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
453021:	33 c5                	xor    %ebp,%eax
453023:	50                   	push   %eax
453024:	8d 45 f4             	lea    -0xc(%ebp),%eax
453027:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
45302d:	8b f1                	mov    %ecx,%esi
45302f:	8b 46 04             	mov    0x4(%esi),%eax
453032:	50                   	push   %eax
453033:	ff 30                	push   (%eax)
453035:	8d 45 f0             	lea    -0x10(%ebp),%eax
453038:	50                   	push   %eax
453039:	e8 28 0c 00 00       	call   0x453c66
45303e:	ff 76 04             	push   0x4(%esi)
453041:	ff 15 10 74 4a 00    	call   *0x4a7410
453047:	83 66 04 00          	andl   $0x0,0x4(%esi)
45304b:	83 66 08 00          	andl   $0x0,0x8(%esi)
45304f:	59                   	pop    %ecx
453050:	8b 4d f4             	mov    -0xc(%ebp),%ecx
453053:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
45305a:	59                   	pop    %ecx
45305b:	5e                   	pop    %esi
45305c:	c9                   	leave
45305d:	c3                   	ret
45305e:	cc                   	int3
45305f:	cc                   	int3
453060:	8b ff                	mov    %edi,%edi
453062:	55                   	push   %ebp
453063:	8b ec                	mov    %esp,%ebp
453065:	ff 71 08             	push   0x8(%ecx)
453068:	8b 4d 08             	mov    0x8(%ebp),%ecx
45306b:	e8 0f e4 fc ff       	call   0x42147f
453070:	5d                   	pop    %ebp
453071:	c2 04 00             	ret    $0x4
453074:	cc                   	int3
453075:	cc                   	int3
453076:	cc                   	int3
453077:	cc                   	int3
453078:	cc                   	int3
453079:	cc                   	int3
45307a:	cc                   	int3
45307b:	cc                   	int3
45307c:	cc                   	int3
45307d:	cc                   	int3
45307e:	cc                   	int3
45307f:	cc                   	int3
453080:	8b ff                	mov    %edi,%edi
453082:	55                   	push   %ebp
453083:	8b ec                	mov    %esp,%ebp
453085:	51                   	push   %ecx
453086:	56                   	push   %esi
453087:	6a 0c                	push   $0xc
453089:	8b f1                	mov    %ecx,%esi
45308b:	ff 15 14 74 4a 00    	call   *0x4a7414
453091:	8b d0                	mov    %eax,%edx
453093:	89 55 fc             	mov    %edx,-0x4(%ebp)
453096:	59                   	pop    %ecx
453097:	85 d2                	test   %edx,%edx
453099:	74 15                	je     0x4530b0
45309b:	8b 46 08             	mov    0x8(%esi),%eax
45309e:	c7 42 04 07 00 00 00 	movl   $0x7,0x4(%edx)
4530a5:	c7 02 90 35 40 00    	movl   $0x403590,(%edx)
4530ab:	89 42 08             	mov    %eax,0x8(%edx)
4530ae:	eb 02                	jmp    0x4530b2
4530b0:	33 d2                	xor    %edx,%edx
4530b2:	8b c2                	mov    %edx,%eax
4530b4:	5e                   	pop    %esi
4530b5:	c9                   	leave
4530b6:	c3                   	ret
4530b7:	cc                   	int3
4530b8:	cc                   	int3
4530b9:	cc                   	int3
4530ba:	cc                   	int3
4530bb:	cc                   	int3
4530bc:	cc                   	int3
4530bd:	cc                   	int3
4530be:	cc                   	int3
4530bf:	cc                   	int3
4530c0:	8b ff                	mov    %edi,%edi
4530c2:	55                   	push   %ebp
4530c3:	8b ec                	mov    %esp,%ebp
4530c5:	53                   	push   %ebx
4530c6:	56                   	push   %esi
4530c7:	57                   	push   %edi
4530c8:	33 db                	xor    %ebx,%ebx
4530ca:	bf bc 08 4a 00       	mov    $0x4a08bc,%edi
4530cf:	53                   	push   %ebx
4530d0:	68 6c 08 4a 00       	push   $0x4a086c
4530d5:	57                   	push   %edi
4530d6:	53                   	push   %ebx
4530d7:	ff 75 08             	push   0x8(%ebp)
4530da:	8b f1                	mov    %ecx,%esi
4530dc:	e8 fd de 03 00       	call   0x490fde
4530e1:	8b c8                	mov    %eax,%ecx
4530e3:	83 c4 14             	add    $0x14,%esp
4530e6:	85 c9                	test   %ecx,%ecx
4530e8:	74 0c                	je     0x4530f6
4530ea:	8b 46 08             	mov    0x8(%esi),%eax
4530ed:	8b 49 08             	mov    0x8(%ecx),%ecx
4530f0:	8b 00                	mov    (%eax),%eax
4530f2:	89 01                	mov    %eax,(%ecx)