45de5c:	85 db                	test   %ebx,%ebx
45de5e:	7c 3a                	jl     0x45de9a
45de60:	43                   	inc    %ebx
45de61:	33 f6                	xor    %esi,%esi
45de63:	8b 45 f8             	mov    -0x8(%ebp),%eax
45de66:	80 78 18 00          	cmpb   $0x0,0x18(%eax)
45de6a:	75 16                	jne    0x45de82
45de6c:	55                   	push   %ebp
45de6d:	8b 45 f8             	mov    -0x8(%ebp),%eax
45de70:	8b 40 04             	mov    0x4(%eax),%eax
45de73:	8b d6                	mov    %esi,%edx
45de75:	e8 56 c2 fe ff       	call   0x44a0d0
45de7a:	e8 c5 fe ff ff       	call   0x45dd44
45de7f:	59                   	pop    %ecx
45de80:	eb 14                	jmp    0x45de96
45de82:	55                   	push   %ebp
45de83:	8b 45 f8             	mov    -0x8(%ebp),%eax
45de86:	8b 40 04             	mov    0x4(%eax),%eax
45de89:	8b d6                	mov    %esi,%edx
45de8b:	e8 40 c2 fe ff       	call   0x44a0d0
45de90:	e8 1b ff ff ff       	call   0x45ddb0
45de95:	59                   	pop    %ecx
45de96:	46                   	inc    %esi
45de97:	4b                   	dec    %ebx
45de98:	75 c9                	jne    0x45de63
45de9a:	8b 55 fc             	mov    -0x4(%ebp),%edx
45de9d:	03 55 f4             	add    -0xc(%ebp),%edx
45dea0:	8b 45 f8             	mov    -0x8(%ebp),%eax
45dea3:	0f b7 40 1a          	movzwl 0x1a(%eax),%eax
45dea7:	03 d0                	add    %eax,%edx
45dea9:	8b 45 f8             	mov    -0x8(%ebp),%eax
45deac:	e8 9b 06 00 00       	call   0x45e54c
45deb1:	eb 0a                	jmp    0x45debd
45deb3:	33 d2                	xor    %edx,%edx
45deb5:	8b 45 f8             	mov    -0x8(%ebp),%eax
45deb8:	e8 8f 06 00 00       	call   0x45e54c
45debd:	5e                   	pop    %esi
45debe:	5b                   	pop    %ebx
45debf:	8b e5                	mov    %ebp,%esp
45dec1:	5d                   	pop    %ebp
45dec2:	c3                   	ret
45dec3:	90                   	nop
45dec4:	53                   	push   %ebx
45dec5:	56                   	push   %esi
45dec6:	8b d8                	mov    %eax,%ebx
45dec8:	be 00 00 10 00       	mov    $0x100000,%esi
45decd:	80 7b 18 01          	cmpb   $0x1,0x18(%ebx)
45ded1:	75 05                	jne    0x45ded8
45ded3:	be 00 00 20 00       	mov    $0x200000,%esi
45ded8:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
45dedc:	74 14                	je     0x45def2
45dede:	6a f0                	push   $0xfffffff0
45dee0:	8b 43 04             	mov    0x4(%ebx),%eax
45dee3:	e8 f4 f4 fe ff       	call   0x44d3dc
45dee8:	50                   	push   %eax
45dee9:	e8 6e 8a fa ff       	call   0x40695c
45deee:	85 f0                	test   %esi,%eax
45def0:	75 05                	jne    0x45def7
45def2:	33 c0                	xor    %eax,%eax
45def4:	5e                   	pop    %esi
45def5:	5b                   	pop    %ebx
45def6:	c3                   	ret
45def7:	b0 01                	mov    $0x1,%al
45def9:	5e                   	pop    %esi
45defa:	5b                   	pop    %ebx
45defb:	c3                   	ret
45defc:	55                   	push   %ebp
45defd:	8b ec                	mov    %esp,%ebp
45deff:	53                   	push   %ebx
45df00:	bb 00 00 10 00       	mov    $0x100000,%ebx
45df05:	66 83 f8 01          	cmp    $0x1,%ax
45df09:	75 05                	jne    0x45df10
45df0b:	bb 00 00 20 00       	mov    $0x200000,%ebx
45df10:	6a f0                	push   $0xfffffff0
45df12:	8b 45 08             	mov    0x8(%ebp),%eax
45df15:	8b 40 fc             	mov    -0x4(%eax),%eax
45df18:	8b 40 04             	mov    0x4(%eax),%eax
45df1b:	e8 bc f4 fe ff       	call   0x44d3dc
45df20:	50                   	push   %eax
45df21:	e8 36 8a fa ff       	call   0x40695c
45df26:	85 d8                	test   %ebx,%eax
45df28:	0f 95 c0             	setne  %al
45df2b:	5b                   	pop    %ebx
45df2c:	5d                   	pop    %ebp
45df2d:	c3                   	ret
45df2e:	8b c0                	mov    %eax,%eax
45df30:	55                   	push   %ebp
45df31:	8b ec                	mov    %esp,%ebp
45df33:	53                   	push   %ebx
45df34:	56                   	push   %esi
45df35:	57                   	push   %edi
45df36:	8b fa                	mov    %edx,%edi
45df38:	8b f0                	mov    %eax,%esi
45df3a:	33 db                	xor    %ebx,%ebx
45df3c:	8b 45 08             	mov    0x8(%ebp),%eax
45df3f:	80 78 fb 00          	cmpb   $0x0,-0x5(%eax)
45df43:	75 60                	jne    0x45dfa5
45df45:	8b 45 08             	mov    0x8(%ebp),%eax
45df48:	80 78 fa 00          	cmpb   $0x0,-0x6(%eax)
45df4c:	74 29                	je     0x45df77
45df4e:	8b 45 08             	mov    0x8(%ebp),%eax
45df51:	50                   	push   %eax
45df52:	8b c6                	mov    %esi,%eax
45df54:	e8 a3 ff ff ff       	call   0x45defc
45df59:	59                   	pop    %ecx
45df5a:	84 c0                	test   %al,%al
45df5c:	75 19                	jne    0x45df77
45df5e:	0f b7 c7             	movzwl %di,%eax
45df61:	50                   	push   %eax
45df62:	a1 0c 46 47 00       	mov    0x47460c,%eax
45df67:	8b 00                	mov    (%eax),%eax
45df69:	ff d0                	call   *%eax
45df6b:	8b d8                	mov    %eax,%ebx
45df6d:	8b 45 08             	mov    0x8(%ebp),%eax
45df70:	2b 58 f4             	sub    -0xc(%eax),%ebx
45df73:	f7 db                	neg    %ebx
45df75:	eb 2e                	jmp    0x45dfa5
45df77:	8b 45 08             	mov    0x8(%ebp),%eax
45df7a:	80 78 fa 00          	cmpb   $0x0,-0x6(%eax)
45df7e:	75 25                	jne    0x45dfa5
45df80:	8b 45 08             	mov    0x8(%ebp),%eax
45df83:	50                   	push   %eax
45df84:	8b c6                	mov    %esi,%eax
45df86:	e8 71 ff ff ff       	call   0x45defc
45df8b:	59                   	pop    %ecx
45df8c:	84 c0                	test   %al,%al
45df8e:	74 15                	je     0x45dfa5
45df90:	0f b7 c7             	movzwl %di,%eax
45df93:	50                   	push   %eax
45df94:	a1 0c 46 47 00       	mov    0x47460c,%eax
45df99:	8b 00                	mov    (%eax),%eax
45df9b:	ff d0                	call   *%eax
45df9d:	8b d8                	mov    %eax,%ebx
45df9f:	8b 45 08             	mov    0x8(%ebp),%eax
45dfa2:	2b 58 f4             	sub    -0xc(%eax),%ebx
45dfa5:	8b c3                	mov    %ebx,%eax
45dfa7:	5f                   	pop    %edi
45dfa8:	5e                   	pop    %esi
45dfa9:	5b                   	pop    %ebx
45dfaa:	5d                   	pop    %ebp
45dfab:	c3                   	ret
45dfac:	55                   	push   %ebp
45dfad:	8b ec                	mov    %esp,%ebp
45dfaf:	83 c4 f4             	add    $0xfffffff4,%esp
45dfb2:	53                   	push   %ebx
45dfb3:	88 4d fa             	mov    %cl,-0x6(%ebp)
45dfb6:	88 55 fb             	mov    %dl,-0x5(%ebp)
45dfb9:	89 45 fc             	mov    %eax,-0x4(%ebp)
45dfbc:	6a f0                	push   $0xfffffff0
45dfbe:	8b 45 fc             	mov    -0x4(%ebp),%eax
45dfc1:	8b 40 04             	mov    0x4(%eax),%eax
45dfc4:	e8 13 f4 fe ff       	call   0x44d3dc
45dfc9:	50                   	push   %eax
45dfca:	e8 8d 89 fa ff       	call   0x40695c
45dfcf:	a9 00 00 84 00       	test   $0x840000,%eax
45dfd4:	0f 95 c0             	setne  %al
45dfd7:	83 e0 7f             	and    $0x7f,%eax
45dfda:	89 45 f4             	mov    %eax,-0xc(%ebp)
45dfdd:	8b 45 fc             	mov    -0x4(%ebp),%eax
45dfe0:	80 78 18 01          	cmpb   $0x1,0x18(%eax)
45dfe4:	75 20                	jne    0x45e006
45dfe6:	55                   	push   %ebp
45dfe7:	66 ba 15 00          	mov    $0x15,%dx
45dfeb:	33 c0                	xor    %eax,%eax
45dfed:	e8 3e ff ff ff       	call   0x45df30
45dff2:	59                   	pop    %ecx
45dff3:	8b d8                	mov    %eax,%ebx
45dff5:	8b 45 fc             	mov    -0x4(%ebp),%eax
45dff8:	8b 40 04             	mov    0x4(%eax),%eax
45dffb:	e8 58 86 fe ff       	call   0x446658
45e000:	03 d8                	add    %eax,%ebx
45e002:	8b c3                	mov    %ebx,%eax
45e004:	eb 20                	jmp    0x45e026
45e006:	55                   	push   %ebp
45e007:	66 ba 14 00          	mov    $0x14,%dx
45e00b:	66 b8 01 00          	mov    $0x1,%ax
45e00f:	e8 1c ff ff ff       	call   0x45df30
45e014:	59                   	pop    %ecx
45e015:	8b d8                	mov    %eax,%ebx
45e017:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e01a:	8b 40 04             	mov    0x4(%eax),%eax
45e01d:	e8 f2 85 fe ff       	call   0x446614
45e022:	03 d8                	add    %eax,%ebx
45e024:	8b c3                	mov    %ebx,%eax
45e026:	5b                   	pop    %ebx
45e027:	8b e5                	mov    %ebp,%esp
45e029:	5d                   	pop    %ebp
45e02a:	c3                   	ret
45e02b:	90                   	nop
45e02c:	53                   	push   %ebx
45e02d:	8b d8                	mov    %eax,%ebx
45e02f:	33 c9                	xor    %ecx,%ecx
45e031:	33 d2                	xor    %edx,%edx
45e033:	8b c3                	mov    %ebx,%eax
45e035:	e8 72 ff ff ff       	call   0x45dfac
45e03a:	3b 43 10             	cmp    0x10(%ebx),%eax
45e03d:	0f 9c c0             	setl   %al
45e040:	5b                   	pop    %ebx
45e041:	c3                   	ret
45e042:	8b c0                	mov    %eax,%eax
45e044:	55                   	push   %ebp
45e045:	8b ec                	mov    %esp,%ebp
45e047:	83 c4 e4             	add    $0xffffffe4,%esp
45e04a:	53                   	push   %ebx
45e04b:	56                   	push   %esi
45e04c:	c7 45 e4 1c 00 00 00 	movl   $0x1c,-0x1c(%ebp)
45e053:	c7 45 e8 10 00 00 00 	movl   $0x10,-0x18(%ebp)
45e05a:	33 db                	xor    %ebx,%ebx
45e05c:	8b 45 08             	mov    0x8(%ebp),%eax
45e05f:	8b 40 fc             	mov    -0x4(%eax),%eax
45e062:	80 78 18 01          	cmpb   $0x1,0x18(%eax)
45e066:	75 05                	jne    0x45e06d
45e068:	bb 01 00 00 00       	mov    $0x1,%ebx
45e06d:	8b 45 08             	mov    0x8(%ebp),%eax
45e070:	8b 70 f8             	mov    -0x8(%eax),%esi
45e073:	0f bf 76 06          	movswl 0x6(%esi),%esi
45e077:	8d 45 e4             	lea    -0x1c(%ebp),%eax
45e07a:	50                   	push   %eax
45e07b:	53                   	push   %ebx
45e07c:	8b 45 08             	mov    0x8(%ebp),%eax
45e07f:	8b 40 fc             	mov    -0x4(%eax),%eax
45e082:	8b 40 04             	mov    0x4(%eax),%eax
45e085:	e8 52 f3 fe ff       	call   0x44d3dc
45e08a:	50                   	push   %eax
45e08b:	a1 10 45 47 00       	mov    0x474510,%eax
45e090:	8b 00                	mov    (%eax),%eax
45e092:	ff d0                	call   *%eax
45e094:	85 c0                	test   %eax,%eax
45e096:	74 03                	je     0x45e09b
45e098:	8b 75 fc             	mov    -0x4(%ebp),%esi
45e09b:	8b c6                	mov    %esi,%eax
45e09d:	5e                   	pop    %esi
45e09e:	5b                   	pop    %ebx
45e09f:	8b e5                	mov    %ebp,%esp
45e0a1:	5d                   	pop    %ebp
45e0a2:	c3                   	ret
45e0a3:	90                   	nop
45e0a4:	55                   	push   %ebp
45e0a5:	8b ec                	mov    %esp,%ebp
45e0a7:	83 c4 f0             	add    $0xfffffff0,%esp
45e0aa:	53                   	push   %ebx
45e0ab:	56                   	push   %esi
45e0ac:	57                   	push   %edi
45e0ad:	89 55 f8             	mov    %edx,-0x8(%ebp)
45e0b0:	89 45 fc             	mov    %eax,-0x4(%ebp)
45e0b3:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e0b6:	80 78 1f 00          	cmpb   $0x0,0x1f(%eax)
45e0ba:	0f 84 9e 01 00 00    	je     0x45e25e
45e0c0:	8b 45 f8             	mov    -0x8(%ebp),%eax
45e0c3:	66 8b 40 04          	mov    0x4(%eax),%ax
45e0c7:	66 83 e8 04          	sub    $0x4,%ax
45e0cb:	0f 83 8d 01 00 00    	jae    0x45e25e
45e0d1:	8b 45 f8             	mov    -0x8(%ebp),%eax
45e0d4:	66 8b 40 04          	mov    0x4(%eax),%ax
45e0d8:	66 83 e8 02          	sub    $0x2,%ax
45e0dc:	72 08                	jb     0x45e0e6
45e0de:	66 83 e8 02          	sub    $0x2,%ax
45e0e2:	72 23                	jb     0x45e107
45e0e4:	eb 47                	jmp    0x45e12d
45e0e6:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e0e9:	0f b7 58 08          	movzwl 0x8(%eax),%ebx
45e0ed:	8b c3                	mov    %ebx,%eax
45e0ef:	8b 55 fc             	mov    -0x4(%ebp),%edx
45e0f2:	8b 4a 40             	mov    0x40(%edx),%ecx
45e0f5:	99                   	cltd
45e0f6:	f7 f9                	idiv   %ecx
45e0f8:	89 45 f4             	mov    %eax,-0xc(%ebp)
45e0fb:	8b c3                	mov    %ebx,%eax
45e0fd:	99                   	cltd
45e0fe:	f7 f9                	idiv   %ecx
45e100:	89 55 f0             	mov    %edx,-0x10(%ebp)
45e103:	8b f1                	mov    %ecx,%esi
45e105:	eb 32                	jmp    0x45e139
45e107:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e10a:	0f b7 40 0a          	movzwl 0xa(%eax),%eax
45e10e:	89 45 f4             	mov    %eax,-0xc(%ebp)
45e111:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e114:	8b 48 3c             	mov    0x3c(%eax),%ecx
45e117:	8b 45 f4             	mov    -0xc(%ebp),%eax
45e11a:	99                   	cltd
45e11b:	f7 f9                	idiv   %ecx
45e11d:	89 55 f0             	mov    %edx,-0x10(%ebp)
45e120:	8b 45 f4             	mov    -0xc(%ebp),%eax
45e123:	99                   	cltd
45e124:	f7 f9                	idiv   %ecx
45e126:	89 45 f4             	mov    %eax,-0xc(%ebp)
45e129:	8b f1                	mov    %ecx,%esi
45e12b:	eb 0c                	jmp    0x45e139
45e12d:	33 f6                	xor    %esi,%esi
45e12f:	33 c0                	xor    %eax,%eax
45e131:	89 45 f4             	mov    %eax,-0xc(%ebp)
45e134:	33 c0                	xor    %eax,%eax
45e136:	89 45 f0             	mov    %eax,-0x10(%ebp)
45e139:	33 ff                	xor    %edi,%edi
45e13b:	85 f6                	test   %esi,%esi
45e13d:	0f 8e 9b 00 00 00    	jle    0x45e1de
45e143:	e8 ac 8a fa ff       	call   0x406bf4
45e148:	8b d8                	mov    %eax,%ebx
45e14a:	8b c3                	mov    %ebx,%eax
45e14c:	2b c7                	sub    %edi,%eax
45e14e:	8b 55 fc             	mov    -0x4(%ebp),%edx
45e151:	8b 52 20             	mov    0x20(%edx),%edx
45e154:	3b c2                	cmp    %edx,%eax
45e156:	7d 08                	jge    0x45e160
45e158:	2b d0                	sub    %eax,%edx
45e15a:	52                   	push   %edx
45e15b:	e8 14 ee fa ff       	call   0x40cf74
45e160:	8b fb                	mov    %ebx,%edi
45e162:	8b 45 f8             	mov    -0x8(%ebp),%eax
45e165:	66 8b 40 04          	mov    0x4(%eax),%ax
45e169:	66 83 e8 01          	sub    $0x1,%ax
45e16d:	72 0e                	jb     0x45e17d
45e16f:	74 1f                	je     0x45e190
45e171:	66 ff c8             	dec    %ax
45e174:	74 2d                	je     0x45e1a3
45e176:	66 ff c8             	dec    %ax
45e179:	74 3b                	je     0x45e1b6
45e17b:	eb 4a                	jmp    0x45e1c7
45e17d:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e180:	8b 50 0c             	mov    0xc(%eax),%edx
45e183:	2b 55 f4             	sub    -0xc(%ebp),%edx
45e186:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e189:	e8 86 02 00 00       	call   0x45e414
45e18e:	eb 37                	jmp    0x45e1c7
45e190:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e193:	8b 50 0c             	mov    0xc(%eax),%edx
45e196:	03 55 f4             	add    -0xc(%ebp),%edx
45e199:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e19c:	e8 73 02 00 00       	call   0x45e414
45e1a1:	eb 24                	jmp    0x45e1c7
45e1a3:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e1a6:	8b 50 0c             	mov    0xc(%eax),%edx
45e1a9:	2b 55 f4             	sub    -0xc(%ebp),%edx
45e1ac:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e1af:	e8 60 02 00 00       	call   0x45e414
45e1b4:	eb 11                	jmp    0x45e1c7
45e1b6:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e1b9:	8b 50 0c             	mov    0xc(%eax),%edx
45e1bc:	03 55 f4             	add    -0xc(%ebp),%edx
45e1bf:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e1c2:	e8 4d 02 00 00       	call   0x45e414
45e1c7:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e1ca:	8b 40 04             	mov    0x4(%eax),%eax
45e1cd:	8b 10                	mov    (%eax),%edx
45e1cf:	ff 92 88 00 00 00    	call   *0x88(%edx)
45e1d5:	4e                   	dec    %esi
45e1d6:	85 f6                	test   %esi,%esi
45e1d8:	0f 8f 65 ff ff ff    	jg     0x45e143
45e1de:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
45e1e2:	0f 8e aa 01 00 00    	jle    0x45e392