40ccfe:	5e                   	pop    %esi
40ccff:	5b                   	pop    %ebx
40cd00:	5d                   	pop    %ebp
40cd01:	c2 08 00             	ret    $0x8
40cd04:	8b ff                	mov    %edi,%edi
40cd06:	55                   	push   %ebp
40cd07:	8b ec                	mov    %esp,%ebp
40cd09:	53                   	push   %ebx
40cd0a:	56                   	push   %esi
40cd0b:	57                   	push   %edi
40cd0c:	33 ff                	xor    %edi,%edi
40cd0e:	bb 57 00 07 80       	mov    $0x80070057,%ebx
40cd13:	8b f7                	mov    %edi,%esi
40cd15:	85 d2                	test   %edx,%edx
40cd17:	74 08                	je     0x40cd21
40cd19:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
40cd1f:	76 02                	jbe    0x40cd23
40cd21:	8b f3                	mov    %ebx,%esi
40cd23:	85 f6                	test   %esi,%esi
40cd25:	78 46                	js     0x40cd6d
40cd27:	8b f2                	mov    %edx,%esi
40cd29:	8b c1                	mov    %ecx,%eax
40cd2b:	85 d2                	test   %edx,%edx
40cd2d:	74 0d                	je     0x40cd3c
40cd2f:	66 39 38             	cmp    %di,(%eax)
40cd32:	74 08                	je     0x40cd3c
40cd34:	83 c0 02             	add    $0x2,%eax
40cd37:	83 ee 01             	sub    $0x1,%esi
40cd3a:	75 f3                	jne    0x40cd2f
40cd3c:	8b fe                	mov    %esi,%edi
40cd3e:	8b c2                	mov    %edx,%eax
40cd40:	f7 de                	neg    %esi
40cd42:	1b f6                	sbb    %esi,%esi
40cd44:	2b c7                	sub    %edi,%eax
40cd46:	81 e6 a9 ff f8 7f    	and    $0x7ff8ffa9,%esi
40cd4c:	03 f3                	add    %ebx,%esi
40cd4e:	f7 df                	neg    %edi
40cd50:	1b ff                	sbb    %edi,%edi
40cd52:	23 f8                	and    %eax,%edi
40cd54:	85 f6                	test   %esi,%esi
40cd56:	78 15                	js     0x40cd6d
40cd58:	68 fe ff ff 7f       	push   $0x7ffffffe
40cd5d:	ff 75 08             	push   0x8(%ebp)
40cd60:	2b d7                	sub    %edi,%edx
40cd62:	51                   	push   %ecx
40cd63:	8d 0c 79             	lea    (%ecx,%edi,2),%ecx
40cd66:	e8 0b 00 00 00       	call   0x40cd76
40cd6b:	8b f0                	mov    %eax,%esi
40cd6d:	5f                   	pop    %edi
40cd6e:	8b c6                	mov    %esi,%eax
40cd70:	5e                   	pop    %esi
40cd71:	5b                   	pop    %ebx
40cd72:	5d                   	pop    %ebp
40cd73:	c2 04 00             	ret    $0x4
40cd76:	8b ff                	mov    %edi,%edi
40cd78:	55                   	push   %ebp
40cd79:	8b ec                	mov    %esp,%ebp
40cd7b:	85 d2                	test   %edx,%edx
40cd7d:	74 29                	je     0x40cda8
40cd7f:	8b 45 0c             	mov    0xc(%ebp),%eax
40cd82:	56                   	push   %esi
40cd83:	8b 75 10             	mov    0x10(%ebp),%esi
40cd86:	2b c1                	sub    %ecx,%eax
40cd88:	57                   	push   %edi
40cd89:	85 f6                	test   %esi,%esi
40cd8b:	74 15                	je     0x40cda2
40cd8d:	0f b7 3c 08          	movzwl (%eax,%ecx,1),%edi
40cd91:	66 85 ff             	test   %di,%di
40cd94:	74 0c                	je     0x40cda2
40cd96:	66 89 39             	mov    %di,(%ecx)
40cd99:	83 c1 02             	add    $0x2,%ecx
40cd9c:	4e                   	dec    %esi
40cd9d:	83 ea 01             	sub    $0x1,%edx
40cda0:	75 e7                	jne    0x40cd89
40cda2:	5f                   	pop    %edi
40cda3:	5e                   	pop    %esi
40cda4:	85 d2                	test   %edx,%edx
40cda6:	75 03                	jne    0x40cdab
40cda8:	83 e9 02             	sub    $0x2,%ecx
40cdab:	f7 da                	neg    %edx
40cdad:	1b d2                	sbb    %edx,%edx
40cdaf:	81 e2 86 ff f8 7f    	and    $0x7ff8ff86,%edx
40cdb5:	33 c0                	xor    %eax,%eax
40cdb7:	66 89 01             	mov    %ax,(%ecx)
40cdba:	8d 82 7a 00 07 80    	lea    -0x7ff8ff86(%edx),%eax
40cdc0:	5d                   	pop    %ebp
40cdc1:	c2 0c 00             	ret    $0xc
40cdc4:	8b ff                	mov    %edi,%edi
40cdc6:	55                   	push   %ebp
40cdc7:	8b ec                	mov    %esp,%ebp
40cdc9:	33 c0                	xor    %eax,%eax
40cdcb:	85 d2                	test   %edx,%edx
40cdcd:	74 08                	je     0x40cdd7
40cdcf:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
40cdd5:	76 05                	jbe    0x40cddc
40cdd7:	b8 57 00 07 80       	mov    $0x80070057,%eax
40cddc:	85 c0                	test   %eax,%eax
40cdde:	78 1e                	js     0x40cdfe
40cde0:	81 7d 0c fe ff ff 7f 	cmpl   $0x7ffffffe,0xc(%ebp)
40cde7:	76 07                	jbe    0x40cdf0
40cde9:	b8 57 00 07 80       	mov    $0x80070057,%eax
40cdee:	eb 12                	jmp    0x40ce02
40cdf0:	ff 75 0c             	push   0xc(%ebp)
40cdf3:	ff 75 08             	push   0x8(%ebp)
40cdf6:	51                   	push   %ecx
40cdf7:	e8 7a ff ff ff       	call   0x40cd76
40cdfc:	eb 09                	jmp    0x40ce07
40cdfe:	85 d2                	test   %edx,%edx
40ce00:	74 05                	je     0x40ce07
40ce02:	33 d2                	xor    %edx,%edx
40ce04:	66 89 11             	mov    %dx,(%ecx)
40ce07:	5d                   	pop    %ebp
40ce08:	c2 08 00             	ret    $0x8
40ce0b:	8b ff                	mov    %edi,%edi
40ce0d:	55                   	push   %ebp
40ce0e:	8b ec                	mov    %esp,%ebp
40ce10:	8d 41 01             	lea    0x1(%ecx),%eax
40ce13:	3b c1                	cmp    %ecx,%eax
40ce15:	72 04                	jb     0x40ce1b
40ce17:	8b d0                	mov    %eax,%edx
40ce19:	eb 03                	jmp    0x40ce1e
40ce1b:	83 ca ff             	or     $0xffffffff,%edx
40ce1e:	3b c1                	cmp    %ecx,%eax
40ce20:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ce23:	1b c0                	sbb    %eax,%eax
40ce25:	25 16 02 07 80       	and    $0x80070216,%eax
40ce2a:	89 11                	mov    %edx,(%ecx)
40ce2c:	5d                   	pop    %ebp
40ce2d:	c2 04 00             	ret    $0x4
40ce30:	8b ff                	mov    %edi,%edi
40ce32:	55                   	push   %ebp
40ce33:	8b ec                	mov    %esp,%ebp
40ce35:	8d 04 11             	lea    (%ecx,%edx,1),%eax
40ce38:	3b c1                	cmp    %ecx,%eax
40ce3a:	72 04                	jb     0x40ce40
40ce3c:	8b d0                	mov    %eax,%edx
40ce3e:	eb 03                	jmp    0x40ce43
40ce40:	83 ca ff             	or     $0xffffffff,%edx
40ce43:	3b c1                	cmp    %ecx,%eax
40ce45:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ce48:	1b c0                	sbb    %eax,%eax
40ce4a:	25 16 02 07 80       	and    $0x80070216,%eax
40ce4f:	89 11                	mov    %edx,(%ecx)
40ce51:	5d                   	pop    %ebp
40ce52:	c2 04 00             	ret    $0x4
40ce55:	8b ff                	mov    %edi,%edi
40ce57:	55                   	push   %ebp
40ce58:	8b ec                	mov    %esp,%ebp
40ce5a:	51                   	push   %ecx
40ce5b:	53                   	push   %ebx
40ce5c:	56                   	push   %esi
40ce5d:	33 f6                	xor    %esi,%esi
40ce5f:	57                   	push   %edi
40ce60:	8b f9                	mov    %ecx,%edi
40ce62:	89 75 fc             	mov    %esi,-0x4(%ebp)
40ce65:	e8 4e 01 00 00       	call   0x40cfb8
40ce6a:	8b de                	mov    %esi,%ebx
40ce6c:	8b 07                	mov    (%edi),%eax
40ce6e:	83 f8 ff             	cmp    $0xffffffff,%eax
40ce71:	75 4d                	jne    0x40cec0
40ce73:	56                   	push   %esi
40ce74:	6a 08                	push   $0x8
40ce76:	6a 03                	push   $0x3
40ce78:	56                   	push   %esi
40ce79:	56                   	push   %esi
40ce7a:	68 00 00 00 80       	push   $0x80000000
40ce7f:	ff 75 08             	push   0x8(%ebp)
40ce82:	ff 15 90 c1 42 00    	call   *0x42c190
40ce88:	89 07                	mov    %eax,(%edi)
40ce8a:	83 f8 ff             	cmp    $0xffffffff,%eax
40ce8d:	75 26                	jne    0x40ceb5
40ce8f:	ff 15 18 c2 42 00    	call   *0x42c218
40ce95:	83 f8 20             	cmp    $0x20,%eax
40ce98:	74 0a                	je     0x40cea4
40ce9a:	83 f8 21             	cmp    $0x21,%eax
40ce9d:	74 05                	je     0x40cea4
40ce9f:	83 f8 36             	cmp    $0x36,%eax
40cea2:	75 11                	jne    0x40ceb5
40cea4:	68 fa 00 00 00       	push   $0xfa
40cea9:	43                   	inc    %ebx
40ceaa:	ff 15 cc c2 42 00    	call   *0x42c2cc
40ceb0:	83 fb 05             	cmp    $0x5,%ebx
40ceb3:	72 b7                	jb     0x40ce6c
40ceb5:	8b 07                	mov    (%edi),%eax
40ceb7:	83 f8 ff             	cmp    $0xffffffff,%eax
40ceba:	0f 84 ad 00 00 00    	je     0x40cf6d
40cec0:	85 c0                	test   %eax,%eax
40cec2:	0f 84 a5 00 00 00    	je     0x40cf6d
40cec8:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40cecb:	51                   	push   %ecx
40cecc:	50                   	push   %eax
40cecd:	ff 15 94 c1 42 00    	call   *0x42c194
40ced3:	89 47 0c             	mov    %eax,0xc(%edi)
40ced6:	83 f8 ff             	cmp    $0xffffffff,%eax
40ced9:	75 32                	jne    0x40cf0d
40cedb:	a1 00 b0 42 00       	mov    0x42b000,%eax
40cee0:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40cee5:	0f 84 aa 00 00 00    	je     0x40cf95
40ceeb:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40ceef:	0f 84 a0 00 00 00    	je     0x40cf95
40cef5:	ff 70 14             	push   0x14(%eax)
40cef8:	ff 70 10             	push   0x10(%eax)
40cefb:	6a 0b                	push   $0xb
40cefd:	ba bc 22 40 00       	mov    $0x4022bc,%edx
40cf02:	59                   	pop    %ecx
40cf03:	e8 a8 a4 ff ff       	call   0x4073b0
40cf08:	e9 88 00 00 00       	jmp    0x40cf95
40cf0d:	56                   	push   %esi
40cf0e:	50                   	push   %eax
40cf0f:	56                   	push   %esi
40cf10:	6a 08                	push   $0x8
40cf12:	56                   	push   %esi
40cf13:	ff 37                	push   (%edi)
40cf15:	ff 15 98 c1 42 00    	call   *0x42c198
40cf1b:	89 47 04             	mov    %eax,0x4(%edi)
40cf1e:	85 c0                	test   %eax,%eax
40cf20:	75 1c                	jne    0x40cf3e
40cf22:	a1 00 b0 42 00       	mov    0x42b000,%eax
40cf27:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40cf2c:	74 67                	je     0x40cf95
40cf2e:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40cf32:	74 61                	je     0x40cf95
40cf34:	ff 70 14             	push   0x14(%eax)
40cf37:	ff 70 10             	push   0x10(%eax)
40cf3a:	6a 0c                	push   $0xc
40cf3c:	eb bf                	jmp    0x40cefd
40cf3e:	56                   	push   %esi
40cf3f:	56                   	push   %esi
40cf40:	56                   	push   %esi
40cf41:	6a 01                	push   $0x1
40cf43:	50                   	push   %eax
40cf44:	ff 15 54 c2 42 00    	call   *0x42c254
40cf4a:	89 47 08             	mov    %eax,0x8(%edi)
40cf4d:	85 c0                	test   %eax,%eax
40cf4f:	75 5e                	jne    0x40cfaf
40cf51:	a1 00 b0 42 00       	mov    0x42b000,%eax
40cf56:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40cf5b:	74 38                	je     0x40cf95
40cf5d:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40cf61:	74 32                	je     0x40cf95
40cf63:	ff 70 14             	push   0x14(%eax)
40cf66:	ff 70 10             	push   0x10(%eax)
40cf69:	6a 0d                	push   $0xd
40cf6b:	eb 90                	jmp    0x40cefd
40cf6d:	a1 00 b0 42 00       	mov    0x42b000,%eax
40cf72:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40cf77:	74 1c                	je     0x40cf95
40cf79:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40cf7d:	74 16                	je     0x40cf95
40cf7f:	ff 75 08             	push   0x8(%ebp)
40cf82:	ba bc 22 40 00       	mov    $0x4022bc,%edx
40cf87:	ff 70 14             	push   0x14(%eax)
40cf8a:	ff 70 10             	push   0x10(%eax)
40cf8d:	6a 0a                	push   $0xa
40cf8f:	59                   	pop    %ecx
40cf90:	e8 c3 a9 ff ff       	call   0x407958
40cf95:	ff 15 18 c2 42 00    	call   *0x42c218
40cf9b:	8b c8                	mov    %eax,%ecx
40cf9d:	e8 08 e6 ff ff       	call   0x40b5aa
40cfa2:	8b f0                	mov    %eax,%esi
40cfa4:	85 f6                	test   %esi,%esi
40cfa6:	79 07                	jns    0x40cfaf
40cfa8:	8b cf                	mov    %edi,%ecx
40cfaa:	e8 09 00 00 00       	call   0x40cfb8
40cfaf:	5f                   	pop    %edi
40cfb0:	8b c6                	mov    %esi,%eax
40cfb2:	5e                   	pop    %esi
40cfb3:	5b                   	pop    %ebx
40cfb4:	c9                   	leave
40cfb5:	c2 08 00             	ret    $0x8
40cfb8:	8b ff                	mov    %edi,%edi
40cfba:	56                   	push   %esi
40cfbb:	8b f1                	mov    %ecx,%esi
40cfbd:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
40cfc1:	74 0d                	je     0x40cfd0
40cfc3:	ff 76 08             	push   0x8(%esi)
40cfc6:	ff 15 50 c2 42 00    	call   *0x42c250
40cfcc:	83 66 08 00          	andl   $0x0,0x8(%esi)
40cfd0:	8b 46 04             	mov    0x4(%esi),%eax
40cfd3:	85 c0                	test   %eax,%eax
40cfd5:	74 10                	je     0x40cfe7
40cfd7:	83 f8 ff             	cmp    $0xffffffff,%eax
40cfda:	74 0b                	je     0x40cfe7
40cfdc:	50                   	push   %eax
40cfdd:	ff 15 30 c2 42 00    	call   *0x42c230
40cfe3:	83 66 04 00          	andl   $0x0,0x4(%esi)
40cfe7:	83 3e 00             	cmpl   $0x0,(%esi)
40cfea:	74 10                	je     0x40cffc
40cfec:	83 3e ff             	cmpl   $0xffffffff,(%esi)
40cfef:	74 0b                	je     0x40cffc
40cff1:	ff 36                	push   (%esi)
40cff3:	ff 15 30 c2 42 00    	call   *0x42c230
40cff9:	83 0e ff             	orl    $0xffffffff,(%esi)
40cffc:	5e                   	pop    %esi
40cffd:	c3                   	ret
40cffe:	e9 b5 ff ff ff       	jmp    0x40cfb8
40d003:	cc                   	int3
40d004:	cc                   	int3
40d005:	cc                   	int3
40d006:	cc                   	int3
40d007:	cc                   	int3
40d008:	cc                   	int3
40d009:	cc                   	int3
40d00a:	cc                   	int3
40d00b:	cc                   	int3
40d00c:	cc                   	int3
40d00d:	cc                   	int3
40d00e:	cc                   	int3
40d00f:	cc                   	int3
40d010:	8b ff                	mov    %edi,%edi
40d012:	55                   	push   %ebp
40d013:	8b ec                	mov    %esp,%ebp
40d015:	83 e4 f8             	and    $0xfffffff8,%esp
40d018:	51                   	push   %ecx
40d019:	56                   	push   %esi
40d01a:	8b 75 10             	mov    0x10(%ebp),%esi
40d01d:	85 f6                	test   %esi,%esi
40d01f:	74 1f                	je     0x40d040
40d021:	8b 45 08             	mov    0x8(%ebp),%eax
40d024:	85 c0                	test   %eax,%eax
40d026:	74 18                	je     0x40d040
40d028:	83 7d 14 04          	cmpl   $0x4,0x14(%ebp)
40d02c:	75 12                	jne    0x40d040
40d02e:	66 83 38 00          	cmpw   $0x0,(%eax)
40d032:	74 36                	je     0x40d06a
40d034:	50                   	push   %eax
40d035:	ff 15 b8 c3 42 00    	call   *0x42c3b8
40d03b:	59                   	pop    %ecx
40d03c:	89 06                	mov    %eax,(%esi)
40d03e:	eb 2a                	jmp    0x40d06a
40d040:	a1 00 b0 42 00       	mov    0x42b000,%eax
40d045:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40d04a:	74 19                	je     0x40d065
40d04c:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40d050:	74 13                	je     0x40d065
40d052:	ff 70 14             	push   0x14(%eax)
40d055:	ba cc 22 40 00       	mov    $0x4022cc,%edx
40d05a:	ff 70 10             	push   0x10(%eax)
40d05d:	6a 0c                	push   $0xc
40d05f:	59                   	pop    %ecx
40d060:	e8 4b a3 ff ff       	call   0x4073b0
40d065:	e8 d0 92 01 00       	call   0x42633a
40d06a:	5e                   	pop    %esi
40d06b:	8b e5                	mov    %ebp,%esp
40d06d:	5d                   	pop    %ebp
40d06e:	c2 10 00             	ret    $0x10
40d071:	cc                   	int3
40d072:	cc                   	int3
40d073:	cc                   	int3
40d074:	cc                   	int3