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
45ce08:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ce0b:	0f b7 40 08          	movzwl 0x8(%eax),%eax
45ce0f:	03 d0                	add    %eax,%edx
45ce11:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ce14:	e8 4b 01 00 00       	call   0x45cf64
45ce19:	e9 c5 00 00 00       	jmp    0x45cee3
45ce1e:	33 c9                	xor    %ecx,%ecx
45ce20:	b2 01                	mov    $0x1,%dl
45ce22:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ce25:	e8 b2 fc ff ff       	call   0x45cadc
45ce2a:	8b 55 fc             	mov    -0x4(%ebp),%edx
45ce2d:	8b 52 0c             	mov    0xc(%edx),%edx
45ce30:	2b d0                	sub    %eax,%edx
45ce32:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ce35:	e8 2a 01 00 00       	call   0x45cf64
45ce3a:	e9 a4 00 00 00       	jmp    0x45cee3
45ce3f:	33 c9                	xor    %ecx,%ecx
45ce41:	b2 01                	mov    $0x1,%dl
45ce43:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ce46:	e8 91 fc ff ff       	call   0x45cadc
45ce4b:	8b d0                	mov    %eax,%edx
45ce4d:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ce50:	03 50 0c             	add    0xc(%eax),%edx
45ce53:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ce56:	e8 09 01 00 00       	call   0x45cf64
45ce5b:	e9 83 00 00 00       	jmp    0x45cee3
45ce60:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ce63:	81 78 14 ff 7f 00 00 	cmpl   $0x7fff,0x14(%eax)
45ce6a:	7e 13                	jle    0x45ce7f
45ce6c:	55                   	push   %ebp
45ce6d:	e8 02 fd ff ff       	call   0x45cb74
45ce72:	59                   	pop    %ecx
45ce73:	8b d0                	mov    %eax,%edx
45ce75:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ce78:	e8 e7 00 00 00       	call   0x45cf64
45ce7d:	eb 64                	jmp    0x45cee3
45ce7f:	8b 55 f8             	mov    -0x8(%ebp),%edx
45ce82:	0f bf 52 06          	movswl 0x6(%edx),%edx
45ce86:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ce89:	e8 d6 00 00 00       	call   0x45cf64
45ce8e:	eb 53                	jmp    0x45cee3
45ce90:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ce93:	80 78 1d 00          	cmpb   $0x0,0x1d(%eax)
45ce97:	74 4a                	je     0x45cee3
45ce99:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ce9c:	81 78 14 ff 7f 00 00 	cmpl   $0x7fff,0x14(%eax)
45cea3:	7e 13                	jle    0x45ceb8
45cea5:	55                   	push   %ebp
45cea6:	e8 c9 fc ff ff       	call   0x45cb74
45ceab:	59                   	pop    %ecx
45ceac:	8b d0                	mov    %eax,%edx
45ceae:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ceb1:	e8 ae 00 00 00       	call   0x45cf64
45ceb6:	eb 2b                	jmp    0x45cee3
45ceb8:	8b 55 f8             	mov    -0x8(%ebp),%edx
45cebb:	0f bf 52 06          	movswl 0x6(%edx),%edx
45cebf:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cec2:	e8 9d 00 00 00       	call   0x45cf64
45cec7:	eb 1a                	jmp    0x45cee3
45cec9:	33 d2                	xor    %edx,%edx
45cecb:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cece:	e8 91 00 00 00       	call   0x45cf64
45ced3:	eb 0e                	jmp    0x45cee3
45ced5:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ced8:	8b 50 14             	mov    0x14(%eax),%edx
45cedb:	8b 45 fc             	mov    -0x4(%ebp),%eax
45cede:	e8 81 00 00 00       	call   0x45cf64
45cee3:	5f                   	pop    %edi
45cee4:	5e                   	pop    %esi
45cee5:	5b                   	pop    %ebx
45cee6:	8b e5                	mov    %ebp,%esp
45cee8:	5d                   	pop    %ebp
45cee9:	c3                   	ret
45ceea:	8b c0                	mov    %eax,%eax
45ceec:	53                   	push   %ebx
45ceed:	56                   	push   %esi
45ceee:	8b d8                	mov    %eax,%ebx
45cef0:	3b 53 24             	cmp    0x24(%ebx),%edx
45cef3:	74 35                	je     0x45cf2a
45cef5:	8b f2                	mov    %edx,%esi
45cef7:	85 f6                	test   %esi,%esi
45cef9:	75 17                	jne    0x45cf12
45cefb:	0f b6 43 18          	movzbl 0x18(%ebx),%eax
45ceff:	8b 04 85 ac c7 49 00 	mov    0x49c7ac(,%eax,4),%eax
45cf06:	50                   	push   %eax
45cf07:	a1 28 75 4a 00       	mov    0x4a7528,%eax
45cf0c:	8b 00                	mov    (%eax),%eax
45cf0e:	ff d0                	call   *%eax
45cf10:	8b d0                	mov    %eax,%edx
45cf12:	89 53 24             	mov    %edx,0x24(%ebx)
45cf15:	c6 43 44 01          	movb   $0x1,0x44(%ebx)
45cf19:	8b 43 04             	mov    0x4(%ebx),%eax
45cf1c:	e8 c3 06 00 00       	call   0x45d5e4
45cf21:	85 f6                	test   %esi,%esi
45cf23:	75 05                	jne    0x45cf2a
45cf25:	33 c0                	xor    %eax,%eax
45cf27:	89 43 24             	mov    %eax,0x24(%ebx)
45cf2a:	5e                   	pop    %esi
45cf2b:	5b                   	pop    %ebx
45cf2c:	c3                   	ret
45cf2d:	8d 40 00             	lea    0x0(%eax),%eax
45cf30:	3b 50 28             	cmp    0x28(%eax),%edx
45cf33:	74 13                	je     0x45cf48
45cf35:	89 50 28             	mov    %edx,0x28(%eax)
45cf38:	c6 40 2c 00          	movb   $0x0,0x2c(%eax)
45cf3c:	c6 40 44 01          	movb   $0x1,0x44(%eax)
45cf40:	8b 40 04             	mov    0x4(%eax),%eax
45cf43:	e8 9c 06 00 00       	call   0x45d5e4
45cf48:	c3                   	ret
45cf49:	8d 40 00             	lea    0x0(%eax),%eax
45cf4c:	3a 50 2c             	cmp    0x2c(%eax),%dl
45cf4f:	74 11                	je     0x45cf62
45cf51:	88 50 2c             	mov    %dl,0x2c(%eax)
45cf54:	84 d2                	test   %dl,%dl
45cf56:	74 0a                	je     0x45cf62
45cf58:	ba 14 00 00 ff       	mov    $0xff000014,%edx
45cf5d:	e8 ce ff ff ff       	call   0x45cf30
45cf62:	c3                   	ret
45cf63:	90                   	nop
45cf64:	53                   	push   %ebx
45cf65:	56                   	push   %esi
45cf66:	57                   	push   %edi
45cf67:	8b d8                	mov    %eax,%ebx
45cf69:	8b 43 04             	mov    0x4(%ebx),%eax
45cf6c:	f6 40 1c 02          	testb  $0x2,0x1c(%eax)
45cf70:	74 08                	je     0x45cf7a
45cf72:	89 53 0c             	mov    %edx,0xc(%ebx)
45cf75:	e9 a9 00 00 00       	jmp    0x45d023
45cf7a:	8b 43 14             	mov    0x14(%ebx),%eax
45cf7d:	3b d0                	cmp    %eax,%edx
45cf7f:	7e 04                	jle    0x45cf85
45cf81:	8b d0                	mov    %eax,%edx
45cf83:	eb 06                	jmp    0x45cf8b
45cf85:	85 d2                	test   %edx,%edx
45cf87:	7d 02                	jge    0x45cf8b
45cf89:	33 d2                	xor    %edx,%edx
45cf8b:	80 7b 18 00          	cmpb   $0x0,0x18(%ebx)
45cf8f:	75 04                	jne    0x45cf95
45cf91:	33 f6                	xor    %esi,%esi
45cf93:	eb 04                	jmp    0x45cf99
45cf95:	66 be 01 00          	mov    $0x1,%si
45cf99:	8b 43 0c             	mov    0xc(%ebx),%eax
45cf9c:	3b d0                	cmp    %eax,%edx
45cf9e:	74 4f                	je     0x45cfef
45cfa0:	89 53 0c             	mov    %edx,0xc(%ebx)
45cfa3:	80 7b 18 00          	cmpb   $0x0,0x18(%ebx)
45cfa7:	75 10                	jne    0x45cfb9
45cfa9:	2b c2                	sub    %edx,%eax
45cfab:	8b d0                	mov    %eax,%edx
45cfad:	33 c9                	xor    %ecx,%ecx
45cfaf:	8b 43 04             	mov    0x4(%ebx),%eax
45cfb2:	e8 69 45 ff ff       	call   0x451520
45cfb7:	eb 0e                	jmp    0x45cfc7
45cfb9:	8b c8                	mov    %eax,%ecx
45cfbb:	2b ca                	sub    %edx,%ecx
45cfbd:	8b 43 04             	mov    0x4(%ebx),%eax
45cfc0:	33 d2                	xor    %edx,%edx
45cfc2:	e8 59 45 ff ff       	call   0x451520
45cfc7:	8b 43 04             	mov    0x4(%ebx),%eax
45cfca:	f6 40 1c 10          	testb  $0x10,0x1c(%eax)
45cfce:	74 1f                	je     0x45cfef
45cfd0:	33 d2                	xor    %edx,%edx
45cfd2:	e8 e9 f6 ff ff       	call   0x45c6c0
45cfd7:	85 c0                	test   %eax,%eax
45cfd9:	74 14                	je     0x45cfef
45cfdb:	83 b8 98 02 00 00 00 	cmpl   $0x0,0x298(%eax)
45cfe2:	74 0b                	je     0x45cfef
45cfe4:	8b 80 98 02 00 00    	mov    0x298(%eax),%eax
45cfea:	8b 10                	mov    (%eax),%edx
45cfec:	ff 52 0c             	call   *0xc(%edx)
45cfef:	0f b7 fe             	movzwl %si,%edi
45cff2:	57                   	push   %edi
45cff3:	8b 43 04             	mov    0x4(%ebx),%eax
45cff6:	e8 b1 49 ff ff       	call   0x4519ac
45cffb:	50                   	push   %eax