45ca5e:	8b c0                	mov    %eax,%eax
45ca60:	55                   	push   %ebp
45ca61:	8b ec                	mov    %esp,%ebp
45ca63:	53                   	push   %ebx
45ca64:	56                   	push   %esi
45ca65:	57                   	push   %edi
45ca66:	8b fa                	mov    %edx,%edi
45ca68:	8b f0                	mov    %eax,%esi
45ca6a:	33 db                	xor    %ebx,%ebx
45ca6c:	8b 45 08             	mov    0x8(%ebp),%eax
45ca6f:	80 78 fb 00          	cmpb   $0x0,-0x5(%eax)
45ca73:	75 60                	jne    0x45cad5
45ca75:	8b 45 08             	mov    0x8(%ebp),%eax
45ca78:	80 78 fa 00          	cmpb   $0x0,-0x6(%eax)
45ca7c:	74 29                	je     0x45caa7
45ca7e:	8b 45 08             	mov    0x8(%ebp),%eax
45ca81:	50                   	push   %eax
45ca82:	8b c6                	mov    %esi,%eax
45ca84:	e8 a3 ff ff ff       	call   0x45ca2c
45ca89:	59                   	pop    %ecx
45ca8a:	84 c0                	test   %al,%al
45ca8c:	75 19                	jne    0x45caa7
45ca8e:	0f b7 c7             	movzwl %di,%eax
45ca91:	50                   	push   %eax
45ca92:	a1 28 75 4a 00       	mov    0x4a7528,%eax
45ca97:	8b 00                	mov    (%eax),%eax
45ca99:	ff d0                	call   *%eax
45ca9b:	8b d8                	mov    %eax,%ebx
45ca9d:	8b 45 08             	mov    0x8(%ebp),%eax
45caa0:	2b 58 f4             	sub    -0xc(%eax),%ebx
45caa3:	f7 db                	neg    %ebx
45caa5:	eb 2e                	jmp    0x45cad5
45caa7:	8b 45 08             	mov    0x8(%ebp),%eax
45caaa:	80 78 fa 00          	cmpb   $0x0,-0x6(%eax)
45caae:	75 25                	jne    0x45cad5
45cab0:	8b 45 08             	mov    0x8(%ebp),%eax
45cab3:	50                   	push   %eax
45cab4:	8b c6                	mov    %esi,%eax
45cab6:	e8 71 ff ff ff       	call   0x45ca2c
45cabb:	59                   	pop    %ecx
45cabc:	84 c0                	test   %al,%al
45cabe:	74 15                	je     0x45cad5
45cac0:	0f b7 c7             	movzwl %di,%eax
45cac3:	50                   	push   %eax
45cac4:	a1 28 75 4a 00       	mov    0x4a7528,%eax
45cac9:	8b 00                	mov    (%eax),%eax
45cacb:	ff d0                	call   *%eax
45cacd:	8b d8                	mov    %eax,%ebx
45cacf:	8b 45 08             	mov    0x8(%ebp),%eax
45cad2:	2b 58 f4             	sub    -0xc(%eax),%ebx
45cad5:	8b c3                	mov    %ebx,%eax
45cad7:	5f                   	pop    %edi
45cad8:	5e                   	pop    %esi
45cad9:	5b                   	pop    %ebx
45cada:	5d                   	pop    %ebp
45cadb:	c3                   	ret
45cadc:	55                   	push   %ebp
45cadd:	8b ec                	mov    %esp,%ebp
45cadf:	83 c4 f4             	add    $0xfffffff4,%esp
45cae2:	53                   	push   %ebx
45cae3:	88 4d fa             	mov    %cl,-0x6(%ebp)
45cae6:	88 55 fb             	mov    %dl,-0x5(%ebp)
45cae9:	89 45 fc             	mov    %eax,-0x4(%ebp)
45caec:	6a f0                	push   $0xfffffff0
45caee:	8b 45 fc             	mov    -0x4(%ebp),%eax
45caf1:	8b 40 04             	mov    0x4(%eax),%eax
45caf4:	e8 b3 4e ff ff       	call   0x4519ac
45caf9:	50                   	push   %eax
45cafa:	e8 a1 a5 fa ff       	call   0x4070a0
45caff:	a9 00 00 84 00       	test   $0x840000,%eax
45cb04:	0f 95 c0             	setne  %al
45cb07:	83 e0 7f             	and    $0x7f,%eax
45cb0a:	89 45 f4             	mov    %eax,-0xc(%ebp)
45cb0d:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cb10:	80 78 18 01          	cmpb   $0x1,0x18(%eax)
45cb14:	75 20                	jne    0x45cb36
45cb16:	55                   	push   %ebp
45cb17:	66 ba 15 00          	mov    $0x15,%dx
45cb1b:	33 c0                	xor    %eax,%eax
45cb1d:	e8 3e ff ff ff       	call   0x45ca60
45cb22:	59                   	pop    %ecx
45cb23:	8b d8                	mov    %eax,%ebx
45cb25:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cb28:	8b 40 04             	mov    0x4(%eax),%eax
45cb2b:	e8 f4 cc fe ff       	call   0x449824
45cb30:	03 d8                	add    %eax,%ebx
45cb32:	8b c3                	mov    %ebx,%eax
45cb34:	eb 20                	jmp    0x45cb56
45cb36:	55                   	push   %ebp
45cb37:	66 ba 14 00          	mov    $0x14,%dx
45cb3b:	66 b8 01 00          	mov    $0x1,%ax
45cb3f:	e8 1c ff ff ff       	call   0x45ca60
45cb44:	59                   	pop    %ecx
45cb45:	8b d8                	mov    %eax,%ebx
45cb47:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cb4a:	8b 40 04             	mov    0x4(%eax),%eax
45cb4d:	e8 8e cc fe ff       	call   0x4497e0
45cb52:	03 d8                	add    %eax,%ebx
45cb54:	8b c3                	mov    %ebx,%eax
45cb56:	5b                   	pop    %ebx
45cb57:	8b e5                	mov    %ebp,%esp
45cb59:	5d                   	pop    %ebp
45cb5a:	c3                   	ret
45cb5b:	90                   	nop
45cb5c:	53                   	push   %ebx
45cb5d:	8b d8                	mov    %eax,%ebx
45cb5f:	33 c9                	xor    %ecx,%ecx
45cb61:	33 d2                	xor    %edx,%edx
45cb63:	8b c3                	mov    %ebx,%eax
45cb65:	e8 72 ff ff ff       	call   0x45cadc
45cb6a:	3b 43 10             	cmp    0x10(%ebx),%eax
45cb6d:	0f 9c c0             	setl   %al
45cb70:	5b                   	pop    %ebx
45cb71:	c3                   	ret
45cb72:	8b c0                	mov    %eax,%eax
45cb74:	55                   	push   %ebp
45cb75:	8b ec                	mov    %esp,%ebp
45cb77:	83 c4 e4             	add    $0xffffffe4,%esp
45cb7a:	53                   	push   %ebx
45cb7b:	56                   	push   %esi
45cb7c:	c7 45 e4 1c 00 00 00 	movl   $0x1c,-0x1c(%ebp)
45cb83:	c7 45 e8 10 00 00 00 	movl   $0x10,-0x18(%ebp)
45cb8a:	33 db                	xor    %ebx,%ebx
45cb8c:	8b 45 08             	mov    0x8(%ebp),%eax
45cb8f:	8b 40 fc             	mov    -0x4(%eax),%eax
45cb92:	80 78 18 01          	cmpb   $0x1,0x18(%eax)
45cb96:	75 05                	jne    0x45cb9d
45cb98:	bb 01 00 00 00       	mov    $0x1,%ebx
45cb9d:	8b 45 08             	mov    0x8(%ebp),%eax
45cba0:	8b 70 f8             	mov    -0x8(%eax),%esi
45cba3:	0f bf 76 06          	movswl 0x6(%esi),%esi
45cba7:	8d 45 e4             	lea    -0x1c(%ebp),%eax
45cbaa:	50                   	push   %eax
45cbab:	53                   	push   %ebx
45cbac:	8b 45 08             	mov    0x8(%ebp),%eax
45cbaf:	8b 40 fc             	mov    -0x4(%eax),%eax
45cbb2:	8b 40 04             	mov    0x4(%eax),%eax
45cbb5:	e8 f2 4d ff ff       	call   0x4519ac
45cbba:	50                   	push   %eax
45cbbb:	a1 a0 75 4a 00       	mov    0x4a75a0,%eax
45cbc0:	8b 00                	mov    (%eax),%eax
45cbc2:	ff d0                	call   *%eax
45cbc4:	85 c0                	test   %eax,%eax
45cbc6:	74 03                	je     0x45cbcb
45cbc8:	8b 75 fc             	mov    -0x4(%ebp),%esi
45cbcb:	8b c6                	mov    %esi,%eax
45cbcd:	5e                   	pop    %esi
45cbce:	5b                   	pop    %ebx
45cbcf:	8b e5                	mov    %ebp,%esp
45cbd1:	5d                   	pop    %ebp
45cbd2:	c3                   	ret
45cbd3:	90                   	nop
45cbd4:	55                   	push   %ebp
45cbd5:	8b ec                	mov    %esp,%ebp
45cbd7:	83 c4 ec             	add    $0xffffffec,%esp
45cbda:	53                   	push   %ebx
45cbdb:	56                   	push   %esi
45cbdc:	57                   	push   %edi
45cbdd:	89 55 f8             	mov    %edx,-0x8(%ebp)
45cbe0:	89 45 fc             	mov    %eax,-0x4(%ebp)
45cbe3:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cbe6:	80 78 1f 00          	cmpb   $0x0,0x1f(%eax)
45cbea:	0f 84 bf 01 00 00    	je     0x45cdaf
45cbf0:	8b 45 f8             	mov    -0x8(%ebp),%eax
45cbf3:	0f b7 40 04          	movzwl 0x4(%eax),%eax
45cbf7:	66 83 e8 04          	sub    $0x4,%ax
45cbfb:	0f 83 ae 01 00 00    	jae    0x45cdaf
45cc01:	8b 45 f8             	mov    -0x8(%ebp),%eax
45cc04:	0f b7 40 04          	movzwl 0x4(%eax),%eax
45cc08:	66 83 e8 02          	sub    $0x2,%ax
45cc0c:	72 08                	jb     0x45cc16
45cc0e:	66 83 e8 02          	sub    $0x2,%ax
45cc12:	72 23                	jb     0x45cc37
45cc14:	eb 47                	jmp    0x45cc5d
45cc16:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cc19:	0f b7 58 08          	movzwl 0x8(%eax),%ebx
45cc1d:	8b c3                	mov    %ebx,%eax
45cc1f:	8b 55 fc             	mov    -0x4(%ebp),%edx
45cc22:	8b 4a 40             	mov    0x40(%edx),%ecx
45cc25:	99                   	cltd
45cc26:	f7 f9                	idiv   %ecx
45cc28:	89 45 f4             	mov    %eax,-0xc(%ebp)
45cc2b:	8b c3                	mov    %ebx,%eax
45cc2d:	99                   	cltd
45cc2e:	f7 f9                	idiv   %ecx
45cc30:	89 55 f0             	mov    %edx,-0x10(%ebp)
45cc33:	8b f9                	mov    %ecx,%edi
45cc35:	eb 32                	jmp    0x45cc69
45cc37:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cc3a:	0f b7 40 0a          	movzwl 0xa(%eax),%eax
45cc3e:	89 45 f4             	mov    %eax,-0xc(%ebp)
45cc41:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cc44:	8b 58 3c             	mov    0x3c(%eax),%ebx
45cc47:	8b 45 f4             	mov    -0xc(%ebp),%eax
45cc4a:	99                   	cltd
45cc4b:	f7 fb                	idiv   %ebx
45cc4d:	89 55 f0             	mov    %edx,-0x10(%ebp)
45cc50:	8b 45 f4             	mov    -0xc(%ebp),%eax
45cc53:	99                   	cltd
45cc54:	f7 fb                	idiv   %ebx
45cc56:	89 45 f4             	mov    %eax,-0xc(%ebp)
45cc59:	8b fb                	mov    %ebx,%edi
45cc5b:	eb 0c                	jmp    0x45cc69
45cc5d:	33 ff                	xor    %edi,%edi
45cc5f:	33 c0                	xor    %eax,%eax
45cc61:	89 45 f4             	mov    %eax,-0xc(%ebp)
45cc64:	33 c0                	xor    %eax,%eax
45cc66:	89 45 f0             	mov    %eax,-0x10(%ebp)
45cc69:	33 c0                	xor    %eax,%eax
45cc6b:	89 45 ec             	mov    %eax,-0x14(%ebp)
45cc6e:	85 ff                	test   %edi,%edi
45cc70:	0f 8e b9 00 00 00    	jle    0x45cd2f
45cc76:	e8 e5 9d fa ff       	call   0x406a60
45cc7b:	8b d8                	mov    %eax,%ebx
45cc7d:	8b f3                	mov    %ebx,%esi
45cc7f:	2b 75 ec             	sub    -0x14(%ebp),%esi
45cc82:	8b c6                	mov    %esi,%eax
45cc84:	33 d2                	xor    %edx,%edx
45cc86:	52                   	push   %edx
45cc87:	50                   	push   %eax
45cc88:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cc8b:	8b 40 20             	mov    0x20(%eax),%eax
45cc8e:	99                   	cltd
45cc8f:	3b 54 24 04          	cmp    0x4(%esp),%edx
45cc93:	75 09                	jne    0x45cc9e
45cc95:	3b 04 24             	cmp    (%esp),%eax
45cc98:	5a                   	pop    %edx
45cc99:	58                   	pop    %eax
45cc9a:	76 14                	jbe    0x45ccb0
45cc9c:	eb 04                	jmp    0x45cca2
45cc9e:	5a                   	pop    %edx
45cc9f:	58                   	pop    %eax
45cca0:	7e 0e                	jle    0x45ccb0
45cca2:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cca5:	8b 40 20             	mov    0x20(%eax),%eax
45cca8:	2b c6                	sub    %esi,%eax
45ccaa:	50                   	push   %eax
45ccab:	e8 e0 0e fb ff       	call   0x40db90
45ccb0:	89 5d ec             	mov    %ebx,-0x14(%ebp)
45ccb3:	8b 45 f8             	mov    -0x8(%ebp),%eax
45ccb6:	0f b7 40 04          	movzwl 0x4(%eax),%eax
45ccba:	66 83 e8 01          	sub    $0x1,%ax
45ccbe:	72 0e                	jb     0x45ccce
45ccc0:	74 1f                	je     0x45cce1
45ccc2:	66 ff c8             	dec    %ax
45ccc5:	74 2d                	je     0x45ccf4
45ccc7:	66 ff c8             	dec    %ax
45ccca:	74 3b                	je     0x45cd07
45cccc:	eb 4a                	jmp    0x45cd18
45ccce:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ccd1:	8b 50 0c             	mov    0xc(%eax),%edx
45ccd4:	2b 55 f4             	sub    -0xc(%ebp),%edx
45ccd7:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ccda:	e8 85 02 00 00       	call   0x45cf64
45ccdf:	eb 37                	jmp    0x45cd18
45cce1:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cce4:	8b 50 0c             	mov    0xc(%eax),%edx
45cce7:	03 55 f4             	add    -0xc(%ebp),%edx
45ccea:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cced:	e8 72 02 00 00       	call   0x45cf64
45ccf2:	eb 24                	jmp    0x45cd18
45ccf4:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ccf7:	8b 50 0c             	mov    0xc(%eax),%edx
45ccfa:	2b 55 f4             	sub    -0xc(%ebp),%edx
45ccfd:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cd00:	e8 5f 02 00 00       	call   0x45cf64
45cd05:	eb 11                	jmp    0x45cd18
45cd07:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cd0a:	8b 50 0c             	mov    0xc(%eax),%edx
45cd0d:	03 55 f4             	add    -0xc(%ebp),%edx
45cd10:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cd13:	e8 4c 02 00 00       	call   0x45cf64
45cd18:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cd1b:	8b 40 04             	mov    0x4(%eax),%eax
45cd1e:	8b 10                	mov    (%eax),%edx
45cd20:	ff 92 8c 00 00 00    	call   *0x8c(%edx)
45cd26:	4f                   	dec    %edi
45cd27:	85 ff                	test   %edi,%edi
45cd29:	0f 8f 47 ff ff ff    	jg     0x45cc76
45cd2f:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
45cd33:	0f 8e aa 01 00 00    	jle    0x45cee3
45cd39:	8b 45 f8             	mov    -0x8(%ebp),%eax
45cd3c:	0f b7 40 04          	movzwl 0x4(%eax),%eax
45cd40:	66 83 e8 01          	sub    $0x1,%ax
45cd44:	72 11                	jb     0x45cd57
45cd46:	74 25                	je     0x45cd6d
45cd48:	66 ff c8             	dec    %ax
45cd4b:	74 36                	je     0x45cd83
45cd4d:	66 ff c8             	dec    %ax
45cd50:	74 47                	je     0x45cd99
45cd52:	e9 8c 01 00 00       	jmp    0x45cee3
45cd57:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cd5a:	8b 50 0c             	mov    0xc(%eax),%edx
45cd5d:	2b 55 f0             	sub    -0x10(%ebp),%edx
45cd60:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cd63:	e8 fc 01 00 00       	call   0x45cf64
45cd68:	e9 76 01 00 00       	jmp    0x45cee3
45cd6d:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cd70:	8b 50 0c             	mov    0xc(%eax),%edx
45cd73:	03 55 f0             	add    -0x10(%ebp),%edx
45cd76:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cd79:	e8 e6 01 00 00       	call   0x45cf64
45cd7e:	e9 60 01 00 00       	jmp    0x45cee3
45cd83:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cd86:	8b 50 0c             	mov    0xc(%eax),%edx
45cd89:	2b 55 f0             	sub    -0x10(%ebp),%edx
45cd8c:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cd8f:	e8 d0 01 00 00       	call   0x45cf64
45cd94:	e9 4a 01 00 00       	jmp    0x45cee3
45cd99:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cd9c:	8b 50 0c             	mov    0xc(%eax),%edx
45cd9f:	03 55 f0             	add    -0x10(%ebp),%edx
45cda2:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cda5:	e8 ba 01 00 00       	call   0x45cf64
45cdaa:	e9 34 01 00 00       	jmp    0x45cee3
45cdaf:	8b 45 f8             	mov    -0x8(%ebp),%eax
45cdb2:	0f bf 40 04          	movswl 0x4(%eax),%eax
45cdb6:	83 f8 07             	cmp    $0x7,%eax
45cdb9:	0f 87 24 01 00 00    	ja     0x45cee3
45cdbf:	ff 24 85 c6 cd 45 00 	jmp    *0x45cdc6(,%eax,4)
45cdc6:	e6 cd                	out    %al,$0xcd
45cdc8:	45                   	inc    %ebp
45cdc9:	00 02                	add    %al,(%edx)
45cdcb:	ce                   	into
45cdcc:	45                   	inc    %ebp
45cdcd:	00 1e                	add    %bl,(%esi)
45cdcf:	ce                   	into
45cdd0:	45                   	inc    %ebp
45cdd1:	00 3f                	add    %bh,(%edi)
45cdd3:	ce                   	into
45cdd4:	45                   	inc    %ebp
45cdd5:	00 60 ce             	add    %ah,-0x32(%eax)
45cdd8:	45                   	inc    %ebp
45cdd9:	00 90 ce 45 00 c9    	add    %dl,-0x36ffba32(%eax)
45cddf:	ce                   	into
45cde0:	45                   	inc    %ebp
45cde1:	00 d5                	add    %dl,%ch
45cde3:	ce                   	into
45cde4:	45                   	inc    %ebp
45cde5:	00 8b 45 fc 8b 50    	add    %cl,0x508bfc45(%ebx)
45cdeb:	0c 8b                	or     $0x8b,%al
45cded:	45                   	inc    %ebp
45cdee:	fc                   	cld
45cdef:	0f b7 40 08          	movzwl 0x8(%eax),%eax
45cdf3:	2b d0                	sub    %eax,%edx
45cdf5:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cdf8:	e8 67 01 00 00       	call   0x45cf64
45cdfd:	e9 e1 00 00 00       	jmp    0x45cee3
45ce02:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ce05:	8b 50 0c             	mov    0xc(%eax),%edx