41ac85:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41ac88:	b2 01                	mov    $0x1,%dl
41ac8a:	56                   	push   %esi
41ac8b:	8b 71 04             	mov    0x4(%ecx),%esi
41ac8e:	57                   	push   %edi
41ac8f:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41ac92:	8b fe                	mov    %esi,%edi
41ac94:	88 55 f8             	mov    %dl,-0x8(%ebp)
41ac97:	8b 46 04             	mov    0x4(%esi),%eax
41ac9a:	80 78 1d 00          	cmpb   $0x0,0x1d(%eax)
41ac9e:	75 1f                	jne    0x41acbf
41aca0:	8b 0b                	mov    (%ebx),%ecx
41aca2:	3b 48 0c             	cmp    0xc(%eax),%ecx
41aca5:	8b f8                	mov    %eax,%edi
41aca7:	0f 9c c2             	setl   %dl
41acaa:	88 55 f8             	mov    %dl,-0x8(%ebp)
41acad:	7d 04                	jge    0x41acb3
41acaf:	8b 00                	mov    (%eax),%eax
41acb1:	eb 03                	jmp    0x41acb6
41acb3:	8b 40 08             	mov    0x8(%eax),%eax
41acb6:	80 78 1d 00          	cmpb   $0x0,0x1d(%eax)
41acba:	74 e6                	je     0x41aca2
41acbc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41acbf:	8b c7                	mov    %edi,%eax
41acc1:	89 45 fc             	mov    %eax,-0x4(%ebp)
41acc4:	84 d2                	test   %dl,%dl
41acc6:	74 29                	je     0x41acf1
41acc8:	3b 3e                	cmp    (%esi),%edi
41acca:	75 1a                	jne    0x41ace6
41accc:	53                   	push   %ebx
41accd:	57                   	push   %edi
41acce:	6a 01                	push   $0x1
41acd0:	8d 45 f4             	lea    -0xc(%ebp),%eax
41acd3:	50                   	push   %eax
41acd4:	e8 4a fe ff ff       	call   0x41ab23
41acd9:	8b 08                	mov    (%eax),%ecx
41acdb:	8b 45 08             	mov    0x8(%ebp),%eax
41acde:	89 08                	mov    %ecx,(%eax)
41ace0:	c6 40 04 01          	movb   $0x1,0x4(%eax)
41ace4:	eb 38                	jmp    0x41ad1e
41ace6:	8d 4d fc             	lea    -0x4(%ebp),%ecx
41ace9:	e8 ce fd ff ff       	call   0x41aabc
41acee:	8b 45 fc             	mov    -0x4(%ebp),%eax
41acf1:	8b 48 0c             	mov    0xc(%eax),%ecx
41acf4:	8b 75 08             	mov    0x8(%ebp),%esi
41acf7:	3b 0b                	cmp    (%ebx),%ecx
41acf9:	7d 1b                	jge    0x41ad16
41acfb:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41acfe:	8d 45 f8             	lea    -0x8(%ebp),%eax
41ad01:	53                   	push   %ebx
41ad02:	57                   	push   %edi
41ad03:	ff 75 f8             	push   -0x8(%ebp)
41ad06:	50                   	push   %eax
41ad07:	e8 17 fe ff ff       	call   0x41ab23
41ad0c:	c6 46 04 01          	movb   $0x1,0x4(%esi)
41ad10:	8b 08                	mov    (%eax),%ecx
41ad12:	89 0e                	mov    %ecx,(%esi)
41ad14:	eb 06                	jmp    0x41ad1c
41ad16:	89 06                	mov    %eax,(%esi)
41ad18:	c6 46 04 00          	movb   $0x0,0x4(%esi)
41ad1c:	8b c6                	mov    %esi,%eax
41ad1e:	5f                   	pop    %edi
41ad1f:	5e                   	pop    %esi
41ad20:	5b                   	pop    %ebx
41ad21:	c9                   	leave
41ad22:	c2 08 00             	ret    $0x8
41ad25:	8b ff                	mov    %edi,%edi
41ad27:	55                   	push   %ebp
41ad28:	8b ec                	mov    %esp,%ebp
41ad2a:	56                   	push   %esi
41ad2b:	57                   	push   %edi
41ad2c:	8b 7d 08             	mov    0x8(%ebp),%edi
41ad2f:	8b f1                	mov    %ecx,%esi
41ad31:	57                   	push   %edi
41ad32:	e8 b9 02 00 00       	call   0x41aff0
41ad37:	84 c0                	test   %al,%al
41ad39:	74 1b                	je     0x41ad56
41ad3b:	83 7e 18 08          	cmpl   $0x8,0x18(%esi)
41ad3f:	8d 46 04             	lea    0x4(%esi),%eax
41ad42:	72 02                	jb     0x41ad46
41ad44:	8b 00                	mov    (%eax),%eax
41ad46:	ff 75 0c             	push   0xc(%ebp)
41ad49:	2b f8                	sub    %eax,%edi
41ad4b:	d1 ff                	sar    $1,%edi
41ad4d:	57                   	push   %edi
41ad4e:	56                   	push   %esi
41ad4f:	e8 b7 19 00 00       	call   0x41c70b
41ad54:	eb 3b                	jmp    0x41ad91
41ad56:	53                   	push   %ebx
41ad57:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41ad5a:	6a 00                	push   $0x0
41ad5c:	53                   	push   %ebx
41ad5d:	e8 3b 19 00 00       	call   0x41c69d
41ad62:	84 c0                	test   %al,%al
41ad64:	74 28                	je     0x41ad8e
41ad66:	8b 56 18             	mov    0x18(%esi),%edx
41ad69:	8d 4e 04             	lea    0x4(%esi),%ecx
41ad6c:	83 fa 08             	cmp    $0x8,%edx
41ad6f:	72 02                	jb     0x41ad73
41ad71:	8b 09                	mov    (%ecx),%ecx
41ad73:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
41ad76:	50                   	push   %eax
41ad77:	57                   	push   %edi
41ad78:	8d 04 12             	lea    (%edx,%edx,1),%eax
41ad7b:	50                   	push   %eax
41ad7c:	51                   	push   %ecx
41ad7d:	ff 15 f0 80 4a 00    	call   *0x4a80f0
41ad83:	83 c4 10             	add    $0x10,%esp
41ad86:	8b ce                	mov    %esi,%ecx
41ad88:	53                   	push   %ebx
41ad89:	e8 16 1a 00 00       	call   0x41c7a4
41ad8e:	8b c6                	mov    %esi,%eax
41ad90:	5b                   	pop    %ebx
41ad91:	5f                   	pop    %edi
41ad92:	5e                   	pop    %esi
41ad93:	5d                   	pop    %ebp
41ad94:	c2 08 00             	ret    $0x8
41ad97:	8b ff                	mov    %edi,%edi
41ad99:	55                   	push   %ebp
41ad9a:	8b ec                	mov    %esp,%ebp
41ad9c:	8b 4d 08             	mov    0x8(%ebp),%ecx
41ad9f:	8b c1                	mov    %ecx,%eax
41ada1:	f7 d0                	not    %eax
41ada3:	83 e0 01             	and    $0x1,%eax
41ada6:	c1 e0 02             	shl    $0x2,%eax
41ada9:	f6 c1 02             	test   $0x2,%cl
41adac:	75 03                	jne    0x41adb1
41adae:	83 c8 02             	or     $0x2,%eax
41adb1:	f6 c1 08             	test   $0x8,%cl
41adb4:	74 03                	je     0x41adb9
41adb6:	83 c8 08             	or     $0x8,%eax
41adb9:	f6 c1 04             	test   $0x4,%cl
41adbc:	74 03                	je     0x41adc1
41adbe:	83 c8 10             	or     $0x10,%eax
41adc1:	5d                   	pop    %ebp
41adc2:	c2 04 00             	ret    $0x4
41adc5:	8b ff                	mov    %edi,%edi
41adc7:	55                   	push   %ebp
41adc8:	8b ec                	mov    %esp,%ebp
41adca:	56                   	push   %esi
41adcb:	8b f1                	mov    %ecx,%esi
41adcd:	8b 46 40             	mov    0x40(%esi),%eax
41add0:	83 e0 06             	and    $0x6,%eax
41add3:	3c 06                	cmp    $0x6,%al
41add5:	74 7f                	je     0x41ae56
41add7:	53                   	push   %ebx
41add8:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41addb:	57                   	push   %edi
41addc:	53                   	push   %ebx
41addd:	e8 90 17 00 00       	call   0x41c572
41ade2:	03 db                	add    %ebx,%ebx
41ade4:	8b f8                	mov    %eax,%edi
41ade6:	53                   	push   %ebx
41ade7:	ff 75 08             	push   0x8(%ebp)
41adea:	53                   	push   %ebx
41adeb:	57                   	push   %edi
41adec:	ff 15 f0 80 4a 00    	call   *0x4a80f0
41adf2:	8b 46 40             	mov    0x40(%esi),%eax
41adf5:	8d 0c 3b             	lea    (%ebx,%edi,1),%ecx
41adf8:	83 c4 10             	add    $0x10,%esp
41adfb:	89 4e 3c             	mov    %ecx,0x3c(%esi)
41adfe:	a8 04                	test   $0x4,%al
41ae00:	75 15                	jne    0x41ae17
41ae02:	8b 46 10             	mov    0x10(%esi),%eax
41ae05:	8b 55 0c             	mov    0xc(%ebp),%edx
41ae08:	89 38                	mov    %edi,(%eax)
41ae0a:	8b 46 20             	mov    0x20(%esi),%eax
41ae0d:	89 38                	mov    %edi,(%eax)
41ae0f:	8b 46 30             	mov    0x30(%esi),%eax
41ae12:	89 10                	mov    %edx,(%eax)
41ae14:	8b 46 40             	mov    0x40(%esi),%eax
41ae17:	a8 02                	test   $0x2,%al
41ae19:	75 35                	jne    0x41ae50
41ae1b:	a8 10                	test   $0x10,%al
41ae1d:	75 02                	jne    0x41ae21
41ae1f:	8b cf                	mov    %edi,%ecx
41ae21:	8b 46 14             	mov    0x14(%esi),%eax
41ae24:	2b d9                	sub    %ecx,%ebx
41ae26:	03 df                	add    %edi,%ebx
41ae28:	d1 fb                	sar    $1,%ebx
41ae2a:	89 38                	mov    %edi,(%eax)
41ae2c:	8b 46 24             	mov    0x24(%esi),%eax
41ae2f:	89 08                	mov    %ecx,(%eax)
41ae31:	8b 46 34             	mov    0x34(%esi),%eax
41ae34:	89 18                	mov    %ebx,(%eax)
41ae36:	8b 46 20             	mov    0x20(%esi),%eax
41ae39:	83 38 00             	cmpl   $0x0,(%eax)
41ae3c:	75 12                	jne    0x41ae50
41ae3e:	8b 46 10             	mov    0x10(%esi),%eax
41ae41:	89 38                	mov    %edi,(%eax)
41ae43:	8b 46 20             	mov    0x20(%esi),%eax
41ae46:	83 20 00             	andl   $0x0,(%eax)
41ae49:	8b 46 30             	mov    0x30(%esi),%eax
41ae4c:	d1 ff                	sar    $1,%edi
41ae4e:	89 38                	mov    %edi,(%eax)
41ae50:	83 4e 40 01          	orl    $0x1,0x40(%esi)
41ae54:	5f                   	pop    %edi
41ae55:	5b                   	pop    %ebx
41ae56:	5e                   	pop    %esi
41ae57:	5d                   	pop    %ebp
41ae58:	c2 08 00             	ret    $0x8
41ae5b:	6a 04                	push   $0x4
41ae5d:	b8 ee 12 49 00       	mov    $0x4912ee,%eax
41ae62:	e8 6c 56 07 00       	call   0x4904d3
41ae67:	8b f1                	mov    %ecx,%esi
41ae69:	89 75 f0             	mov    %esi,-0x10(%ebp)
41ae6c:	8d 4e 04             	lea    0x4(%esi),%ecx
41ae6f:	c7 06 44 11 40 00    	movl   $0x401144,(%esi)
41ae75:	e8 93 2d 07 00       	call   0x48dc0d
41ae7a:	33 db                	xor    %ebx,%ebx
41ae7c:	6a 04                	push   $0x4
41ae7e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41ae81:	ff 15 14 74 4a 00    	call   *0x4a7414
41ae87:	8b f8                	mov    %eax,%edi
41ae89:	59                   	pop    %ecx
41ae8a:	85 ff                	test   %edi,%edi
41ae8c:	74 15                	je     0x41aea3
41ae8e:	e8 f4 2e 07 00       	call   0x48dd87
41ae93:	89 07                	mov    %eax,(%edi)
41ae95:	e8 e7 2e 07 00       	call   0x48dd81
41ae9a:	8b c8                	mov    %eax,%ecx
41ae9c:	e8 05 0a 00 00       	call   0x41b8a6
41aea1:	eb 02                	jmp    0x41aea5
41aea3:	8b fb                	mov    %ebx,%edi
41aea5:	8d 46 08             	lea    0x8(%esi),%eax
41aea8:	89 7e 38             	mov    %edi,0x38(%esi)
41aeab:	89 46 10             	mov    %eax,0x10(%esi)
41aeae:	8d 4e 0c             	lea    0xc(%esi),%ecx
41aeb1:	8d 46 18             	lea    0x18(%esi),%eax
41aeb4:	89 4e 14             	mov    %ecx,0x14(%esi)
41aeb7:	89 46 20             	mov    %eax,0x20(%esi)
41aeba:	8d 46 1c             	lea    0x1c(%esi),%eax
41aebd:	89 46 24             	mov    %eax,0x24(%esi)
41aec0:	8d 46 28             	lea    0x28(%esi),%eax
41aec3:	89 46 30             	mov    %eax,0x30(%esi)
41aec6:	8d 46 2c             	lea    0x2c(%esi),%eax
41aec9:	89 46 34             	mov    %eax,0x34(%esi)
41aecc:	89 19                	mov    %ebx,(%ecx)
41aece:	8b 46 24             	mov    0x24(%esi),%eax
41aed1:	89 18                	mov    %ebx,(%eax)
41aed3:	8b 46 34             	mov    0x34(%esi),%eax
41aed6:	89 18                	mov    %ebx,(%eax)
41aed8:	8b 46 10             	mov    0x10(%esi),%eax
41aedb:	89 18                	mov    %ebx,(%eax)
41aedd:	8b 46 20             	mov    0x20(%esi),%eax
41aee0:	89 18                	mov    %ebx,(%eax)
41aee2:	8b 46 30             	mov    0x30(%esi),%eax
41aee5:	89 18                	mov    %ebx,(%eax)
41aee7:	8b c6                	mov    %esi,%eax
41aee9:	e8 b3 55 07 00       	call   0x4904a1
41aeee:	c3                   	ret
41aeef:	6a 04                	push   $0x4
41aef1:	b8 11 13 49 00       	mov    $0x491311,%eax
41aef6:	e8 d8 55 07 00       	call   0x4904d3
41aefb:	8b d9                	mov    %ecx,%ebx
41aefd:	33 ff                	xor    %edi,%edi
41aeff:	c7 43 10 01 02 00 00 	movl   $0x201,0x10(%ebx)
41af06:	6a 04                	push   $0x4
41af08:	89 7b 24             	mov    %edi,0x24(%ebx)
41af0b:	89 7b 0c             	mov    %edi,0xc(%ebx)
41af0e:	c7 43 14 06 00 00 00 	movl   $0x6,0x14(%ebx)
41af15:	89 7b 18             	mov    %edi,0x18(%ebx)
41af18:	89 7b 1c             	mov    %edi,0x1c(%ebx)
41af1b:	89 7b 20             	mov    %edi,0x20(%ebx)
41af1e:	89 7b 04             	mov    %edi,0x4(%ebx)
41af21:	89 7b 08             	mov    %edi,0x8(%ebx)
41af24:	ff 15 14 74 4a 00    	call   *0x4a7414
41af2a:	8b f0                	mov    %eax,%esi
41af2c:	59                   	pop    %ecx
41af2d:	85 f6                	test   %esi,%esi
41af2f:	74 15                	je     0x41af46
41af31:	e8 51 2e 07 00       	call   0x48dd87
41af36:	89 06                	mov    %eax,(%esi)
41af38:	e8 44 2e 07 00       	call   0x48dd81
41af3d:	8b c8                	mov    %eax,%ecx
41af3f:	e8 62 09 00 00       	call   0x41b8a6
41af44:	eb 02                	jmp    0x41af48
41af46:	8b f7                	mov    %edi,%esi
41af48:	8b 45 08             	mov    0x8(%ebp),%eax
41af4b:	89 73 24             	mov    %esi,0x24(%ebx)
41af4e:	89 43 28             	mov    %eax,0x28(%ebx)
41af51:	89 7b 2c             	mov    %edi,0x2c(%ebx)
41af54:	8b 0e                	mov    (%esi),%ecx
41af56:	89 4d f0             	mov    %ecx,-0x10(%ebp)
41af59:	e8 48 09 00 00       	call   0x41b8a6
41af5e:	8d 4d f0             	lea    -0x10(%ebp),%ecx
41af61:	89 7d fc             	mov    %edi,-0x4(%ebp)
41af64:	e8 42 06 00 00       	call   0x41b5ab
41af69:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
41af6d:	8d 4d f0             	lea    -0x10(%ebp),%ecx
41af70:	8b f8                	mov    %eax,%edi
41af72:	e8 fc 0c 00 00       	call   0x41bc73
41af77:	8b 0f                	mov    (%edi),%ecx
41af79:	6a 20                	push   $0x20
41af7b:	8b 71 28             	mov    0x28(%ecx),%esi
41af7e:	8b ce                	mov    %esi,%ecx
41af80:	ff 15 2c 81 4a 00    	call   *0x4a812c
41af86:	8b cf                	mov    %edi,%ecx
41af88:	ff d6                	call   *%esi
41af8a:	33 f6                	xor    %esi,%esi
41af8c:	66 89 43 30          	mov    %ax,0x30(%ebx)
41af90:	39 73 28             	cmp    %esi,0x28(%ebx)
41af93:	75 19                	jne    0x41afae
41af95:	8b 43 08             	mov    0x8(%ebx),%eax
41af98:	83 e0 13             	and    $0x13,%eax
41af9b:	83 c8 04             	or     $0x4,%eax
41af9e:	89 43 08             	mov    %eax,0x8(%ebx)
41afa1:	85 43 0c             	test   %eax,0xc(%ebx)
41afa4:	74 08                	je     0x41afae
41afa6:	56                   	push   %esi
41afa7:	8b cb                	mov    %ebx,%ecx
41afa9:	e8 5d 08 00 00       	call   0x41b80b
41afae:	89 73 04             	mov    %esi,0x4(%ebx)
41afb1:	e8 eb 54 07 00       	call   0x4904a1
41afb6:	c2 08 00             	ret    $0x8
41afb9:	8b ff                	mov    %edi,%edi
41afbb:	55                   	push   %ebp
41afbc:	8b ec                	mov    %esp,%ebp
41afbe:	56                   	push   %esi
41afbf:	57                   	push   %edi
41afc0:	6a 20                	push   $0x20
41afc2:	ff 15 14 74 4a 00    	call   *0x4a7414
41afc8:	8b 75 14             	mov    0x14(%ebp),%esi
41afcb:	59                   	pop    %ecx
41afcc:	8b 4d 08             	mov    0x8(%ebp),%ecx
41afcf:	89 08                	mov    %ecx,(%eax)
41afd1:	8d 78 0c             	lea    0xc(%eax),%edi
41afd4:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41afd7:	89 48 04             	mov    %ecx,0x4(%eax)
41afda:	8b 4d 10             	mov    0x10(%ebp),%ecx
41afdd:	89 48 08             	mov    %ecx,0x8(%eax)
41afe0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41afe1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41afe2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41afe3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41afe4:	5f                   	pop    %edi
41afe5:	66 c7 40 1c 00 00    	movw   $0x0,0x1c(%eax)
41afeb:	5e                   	pop    %esi
41afec:	5d                   	pop    %ebp
41afed:	c2 14 00             	ret    $0x14
41aff0:	8b ff                	mov    %edi,%edi
41aff2:	55                   	push   %ebp
41aff3:	8b ec                	mov    %esp,%ebp
41aff5:	83 79 18 08          	cmpl   $0x8,0x18(%ecx)
41aff9:	8d 51 04             	lea    0x4(%ecx),%edx
41affc:	72 04                	jb     0x41b002
41affe:	8b 02                	mov    (%edx),%eax
41b000:	eb 02                	jmp    0x41b004
41b002:	8b c2                	mov    %edx,%eax
41b004:	39 45 08             	cmp    %eax,0x8(%ebp)