500edd:	8b 12                	mov    (%edx),%edx
500edf:	c7 42 14 37 00 00 00 	movl   $0x37,0x14(%edx)
500ee6:	89 42 18             	mov    %eax,0x18(%edx)
500ee9:	8b 04 24             	mov    (%esp),%eax
500eec:	8b 08                	mov    (%eax),%ecx
500eee:	ff 11                	call   *(%ecx)
500ef0:	be 01 00 00 00       	mov    $0x1,%esi
500ef5:	33 c9                	xor    %ecx,%ecx
500ef7:	8b 44 24 04          	mov    0x4(%esp),%eax
500efb:	3b 4c 24 08          	cmp    0x8(%esp),%ecx
500eff:	7d 0f                	jge    0x500f10
500f01:	89 18                	mov    %ebx,(%eax)
500f03:	0f af f3             	imul   %ebx,%esi
500f06:	41                   	inc    %ecx
500f07:	83 c0 04             	add    $0x4,%eax
500f0a:	3b 4c 24 08          	cmp    0x8(%esp),%ecx
500f0e:	7c f1                	jl     0x500f01
500f10:	33 d2                	xor    %edx,%edx
500f12:	89 54 24 10          	mov    %edx,0x10(%esp)
500f16:	33 c9                	xor    %ecx,%ecx
500f18:	c7 44 24 14 98 d8 68 	movl   $0x68d898,0x14(%esp)
500f1f:	00
500f20:	3b 4c 24 08          	cmp    0x8(%esp),%ecx
500f24:	7d 50                	jge    0x500f76
500f26:	8b 04 24             	mov    (%esp),%eax
500f29:	83 78 28 02          	cmpl   $0x2,0x28(%eax)
500f2d:	75 08                	jne    0x500f37
500f2f:	8b 54 24 14          	mov    0x14(%esp),%edx
500f33:	8b 1a                	mov    (%edx),%ebx
500f35:	eb 02                	jmp    0x500f39
500f37:	8b d9                	mov    %ecx,%ebx
500f39:	8b 44 24 04          	mov    0x4(%esp),%eax
500f3d:	ff 34 98             	push   (%eax,%ebx,4)
500f40:	8b c6                	mov    %esi,%eax
500f42:	5a                   	pop    %edx
500f43:	8b fa                	mov    %edx,%edi
500f45:	99                   	cltd
500f46:	f7 ff                	idiv   %edi
500f48:	8b 54 24 04          	mov    0x4(%esp),%edx
500f4c:	8b 14 9a             	mov    (%edx,%ebx,4),%edx
500f4f:	42                   	inc    %edx
500f50:	0f af c2             	imul   %edx,%eax
500f53:	3b 44 24 0c          	cmp    0xc(%esp),%eax
500f57:	7f 1d                	jg     0x500f76
500f59:	8b 54 24 04          	mov    0x4(%esp),%edx
500f5d:	41                   	inc    %ecx
500f5e:	8b f0                	mov    %eax,%esi
500f60:	ff 04 9a             	incl   (%edx,%ebx,4)
500f63:	c7 44 24 10 01 00 00 	movl   $0x1,0x10(%esp)
500f6a:	00
500f6b:	83 44 24 14 04       	addl   $0x4,0x14(%esp)
500f70:	3b 4c 24 08          	cmp    0x8(%esp),%ecx
500f74:	7c b0                	jl     0x500f26
500f76:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
500f7b:	75 93                	jne    0x500f10
500f7d:	8b c6                	mov    %esi,%eax
500f7f:	83 c4 18             	add    $0x18,%esp
500f82:	5f                   	pop    %edi
500f83:	5e                   	pop    %esi
500f84:	5b                   	pop    %ebx
500f85:	c3                   	ret
500f86:	90                   	nop
500f87:	90                   	nop
500f88:	55                   	push   %ebp
500f89:	8b ec                	mov    %esp,%ebp
500f8b:	8b c1                	mov    %ecx,%eax
500f8d:	53                   	push   %ebx
500f8e:	c1 e0 08             	shl    $0x8,%eax
500f91:	8b 5d 08             	mov    0x8(%ebp),%ebx
500f94:	8b d3                	mov    %ebx,%edx
500f96:	2b c1                	sub    %ecx,%eax
500f98:	d1 fa                	sar    $1,%edx
500f9a:	79 03                	jns    0x500f9f
500f9c:	83 d2 00             	adc    $0x0,%edx
500f9f:	03 c2                	add    %edx,%eax
500fa1:	99                   	cltd
500fa2:	f7 fb                	idiv   %ebx
500fa4:	5b                   	pop    %ebx
500fa5:	5d                   	pop    %ebp
500fa6:	c2 04 00             	ret    $0x4
500fa9:	90                   	nop
500faa:	90                   	nop
500fab:	90                   	nop
500fac:	03 c9                	add    %ecx,%ecx
500fae:	55                   	push   %ebp
500faf:	8b ec                	mov    %esp,%ebp
500fb1:	8b c1                	mov    %ecx,%eax
500fb3:	c1 e0 08             	shl    $0x8,%eax
500fb6:	53                   	push   %ebx
500fb7:	8b 5d 08             	mov    0x8(%ebp),%ebx
500fba:	2b c1                	sub    %ecx,%eax
500fbc:	03 c3                	add    %ebx,%eax
500fbe:	03 db                	add    %ebx,%ebx
500fc0:	05 ff 00 00 00       	add    $0xff,%eax
500fc5:	99                   	cltd
500fc6:	f7 fb                	idiv   %ebx
500fc8:	5b                   	pop    %ebx
500fc9:	5d                   	pop    %ebp
500fca:	c2 04 00             	ret    $0x4
500fcd:	90                   	nop
500fce:	90                   	nop
500fcf:	90                   	nop
500fd0:	53                   	push   %ebx
500fd1:	56                   	push   %esi
500fd2:	57                   	push   %edi
500fd3:	55                   	push   %ebp
500fd4:	83 c4 d0             	add    $0xffffffd0,%esp
500fd7:	89 04 24             	mov    %eax,(%esp)
500fda:	8b 04 24             	mov    (%esp),%eax
500fdd:	8b 90 c4 01 00 00    	mov    0x1c4(%eax),%edx
500fe3:	89 54 24 04          	mov    %edx,0x4(%esp)
500fe7:	8b 54 24 04          	mov    0x4(%esp),%edx
500feb:	8b 04 24             	mov    (%esp),%eax
500fee:	83 c2 20             	add    $0x20,%edx
500ff1:	e8 9a fe ff ff       	call   0x500e90
500ff6:	89 44 24 0c          	mov    %eax,0xc(%esp)
500ffa:	8b 0c 24             	mov    (%esp),%ecx
500ffd:	83 79 74 03          	cmpl   $0x3,0x74(%ecx)
501001:	75 47                	jne    0x50104a
501003:	8b 04 24             	mov    (%esp),%eax
501006:	8b 00                	mov    (%eax),%eax
501008:	83 c0 18             	add    $0x18,%eax
50100b:	8b 54 24 0c          	mov    0xc(%esp),%edx
50100f:	89 10                	mov    %edx,(%eax)
501011:	8b 4c 24 04          	mov    0x4(%esp),%ecx
501015:	8b 51 20             	mov    0x20(%ecx),%edx
501018:	89 50 04             	mov    %edx,0x4(%eax)
50101b:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50101f:	8b 51 24             	mov    0x24(%ecx),%edx
501022:	89 50 08             	mov    %edx,0x8(%eax)
501025:	8b 4c 24 04          	mov    0x4(%esp),%ecx
501029:	8b 51 28             	mov    0x28(%ecx),%edx
50102c:	89 50 0c             	mov    %edx,0xc(%eax)
50102f:	8b 04 24             	mov    (%esp),%eax
501032:	8b 08                	mov    (%eax),%ecx
501034:	c7 41 14 5d 00 00 00 	movl   $0x5d,0x14(%ecx)
50103b:	ba 01 00 00 00       	mov    $0x1,%edx
501040:	8b 04 24             	mov    (%esp),%eax
501043:	8b 08                	mov    (%eax),%ecx
501045:	ff 51 04             	call   *0x4(%ecx)
501048:	eb 20                	jmp    0x50106a
50104a:	8b 04 24             	mov    (%esp),%eax
50104d:	8b 00                	mov    (%eax),%eax
50104f:	c7 40 14 5e 00 00 00 	movl   $0x5e,0x14(%eax)
501056:	8b 54 24 0c          	mov    0xc(%esp),%edx
50105a:	89 50 18             	mov    %edx,0x18(%eax)
50105d:	ba 01 00 00 00       	mov    $0x1,%edx
501062:	8b 04 24             	mov    (%esp),%eax
501065:	8b 08                	mov    (%eax),%ecx
501067:	ff 51 04             	call   *0x4(%ecx)
50106a:	8b 04 24             	mov    (%esp),%eax
50106d:	8b 50 74             	mov    0x74(%eax),%edx
501070:	52                   	push   %edx
501071:	ba 01 00 00 00       	mov    $0x1,%edx
501076:	8b 44 24 04          	mov    0x4(%esp),%eax
50107a:	8b 4c 24 10          	mov    0x10(%esp),%ecx
50107e:	8b 58 04             	mov    0x4(%eax),%ebx
501081:	ff 53 08             	call   *0x8(%ebx)
501084:	89 44 24 08          	mov    %eax,0x8(%esp)
501088:	33 d2                	xor    %edx,%edx
50108a:	8b 44 24 0c          	mov    0xc(%esp),%eax
50108e:	89 44 24 1c          	mov    %eax,0x1c(%esp)
501092:	89 54 24 10          	mov    %edx,0x10(%esp)
501096:	8b 4c 24 08          	mov    0x8(%esp),%ecx
50109a:	8b c1                	mov    %ecx,%eax
50109c:	89 44 24 2c          	mov    %eax,0x2c(%esp)
5010a0:	8b 54 24 04          	mov    0x4(%esp),%edx
5010a4:	8d 4a 20             	lea    0x20(%edx),%ecx
5010a7:	89 4c 24 20          	mov    %ecx,0x20(%esp)
5010ab:	e9 a5 00 00 00       	jmp    0x501155
5010b0:	8b 44 24 20          	mov    0x20(%esp),%eax
5010b4:	8b 10                	mov    (%eax),%edx
5010b6:	89 54 24 18          	mov    %edx,0x18(%esp)
5010ba:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5010be:	99                   	cltd
5010bf:	f7 7c 24 18          	idivl  0x18(%esp)
5010c3:	8b f0                	mov    %eax,%esi
5010c5:	33 c0                	xor    %eax,%eax
5010c7:	89 44 24 14          	mov    %eax,0x14(%esp)
5010cb:	8b 54 24 2c          	mov    0x2c(%esp),%edx
5010cf:	8b ca                	mov    %edx,%ecx
5010d1:	89 4c 24 28          	mov    %ecx,0x28(%esp)
5010d5:	8b 44 24 14          	mov    0x14(%esp),%eax
5010d9:	3b 44 24 18          	cmp    0x18(%esp),%eax
5010dd:	7d 64                	jge    0x501143
5010df:	8b 54 24 18          	mov    0x18(%esp),%edx
5010e3:	4a                   	dec    %edx
5010e4:	52                   	push   %edx
5010e5:	8b 4c 24 18          	mov    0x18(%esp),%ecx
5010e9:	8b 54 24 14          	mov    0x14(%esp),%edx
5010ed:	8b 44 24 04          	mov    0x4(%esp),%eax
5010f1:	e8 92 fe ff ff       	call   0x500f88
5010f6:	8b f8                	mov    %eax,%edi
5010f8:	8b 4c 24 14          	mov    0x14(%esp),%ecx
5010fc:	0f af ce             	imul   %esi,%ecx
5010ff:	8b 44 24 28          	mov    0x28(%esp),%eax
501103:	8b d0                	mov    %eax,%edx
501105:	89 54 24 24          	mov    %edx,0x24(%esp)
501109:	3b 4c 24 0c          	cmp    0xc(%esp),%ecx
50110d:	7d 26                	jge    0x501135
50110f:	33 c0                	xor    %eax,%eax
501111:	8b 54 24 24          	mov    0x24(%esp),%edx
501115:	3b f0                	cmp    %eax,%esi
501117:	7e 12                	jle    0x50112b
501119:	8b 1a                	mov    (%edx),%ebx
50111b:	03 d9                	add    %ecx,%ebx
50111d:	03 d8                	add    %eax,%ebx
50111f:	40                   	inc    %eax
501120:	53                   	push   %ebx
501121:	8b df                	mov    %edi,%ebx
501123:	5d                   	pop    %ebp
501124:	3b f0                	cmp    %eax,%esi
501126:	88 5d 00             	mov    %bl,0x0(%ebp)
501129:	7f ee                	jg     0x501119
50112b:	03 4c 24 1c          	add    0x1c(%esp),%ecx
50112f:	3b 4c 24 0c          	cmp    0xc(%esp),%ecx
501133:	7c da                	jl     0x50110f
501135:	ff 44 24 14          	incl   0x14(%esp)
501139:	8b 44 24 14          	mov    0x14(%esp),%eax
50113d:	3b 44 24 18          	cmp    0x18(%esp),%eax
501141:	7c 9c                	jl     0x5010df
501143:	89 74 24 1c          	mov    %esi,0x1c(%esp)
501147:	ff 44 24 10          	incl   0x10(%esp)
50114b:	83 44 24 2c 04       	addl   $0x4,0x2c(%esp)
501150:	83 44 24 20 04       	addl   $0x4,0x20(%esp)
501155:	8b 14 24             	mov    (%esp),%edx
501158:	8b 4a 74             	mov    0x74(%edx),%ecx
50115b:	3b 4c 24 10          	cmp    0x10(%esp),%ecx
50115f:	0f 8f 4b ff ff ff    	jg     0x5010b0
501165:	8b 44 24 04          	mov    0x4(%esp),%eax
501169:	8b 54 24 08          	mov    0x8(%esp),%edx
50116d:	89 50 10             	mov    %edx,0x10(%eax)
501170:	8b 4c 24 04          	mov    0x4(%esp),%ecx
501174:	8b 44 24 0c          	mov    0xc(%esp),%eax
501178:	89 41 14             	mov    %eax,0x14(%ecx)
50117b:	83 c4 30             	add    $0x30,%esp
50117e:	5d                   	pop    %ebp
50117f:	5f                   	pop    %edi
501180:	5e                   	pop    %esi
501181:	5b                   	pop    %ebx
501182:	c3                   	ret
501183:	90                   	nop
501184:	53                   	push   %ebx
501185:	56                   	push   %esi
501186:	57                   	push   %edi
501187:	83 c4 e0             	add    $0xffffffe0,%esp
50118a:	89 04 24             	mov    %eax,(%esp)
50118d:	8b 04 24             	mov    (%esp),%eax
501190:	8b 90 c4 01 00 00    	mov    0x1c4(%eax),%edx
501196:	89 54 24 04          	mov    %edx,0x4(%esp)
50119a:	8b 0c 24             	mov    (%esp),%ecx
50119d:	83 79 54 01          	cmpl   $0x1,0x54(%ecx)
5011a1:	75 15                	jne    0x5011b8
5011a3:	c7 44 24 14 fe 01 00 	movl   $0x1fe,0x14(%esp)
5011aa:	00
5011ab:	8b 44 24 04          	mov    0x4(%esp),%eax
5011af:	c7 40 1c 01 00 00 00 	movl   $0x1,0x1c(%eax)
5011b6:	eb 0f                	jmp    0x5011c7
5011b8:	33 d2                	xor    %edx,%edx
5011ba:	89 54 24 14          	mov    %edx,0x14(%esp)
5011be:	8b 4c 24 04          	mov    0x4(%esp),%ecx
5011c2:	33 c0                	xor    %eax,%eax
5011c4:	89 41 1c             	mov    %eax,0x1c(%ecx)
5011c7:	8b 14 24             	mov    (%esp),%edx
5011ca:	8b 4a 74             	mov    0x74(%edx),%ecx
5011cd:	ba 01 00 00 00       	mov    $0x1,%edx
5011d2:	51                   	push   %ecx
5011d3:	8b 44 24 04          	mov    0x4(%esp),%eax
5011d7:	8b 4c 24 18          	mov    0x18(%esp),%ecx
5011db:	81 c1 00 01 00 00    	add    $0x100,%ecx
5011e1:	8b 58 04             	mov    0x4(%eax),%ebx
5011e4:	ff 53 08             	call   *0x8(%ebx)
5011e7:	8b 54 24 04          	mov    0x4(%esp),%edx
5011eb:	89 42 18             	mov    %eax,0x18(%edx)
5011ee:	8b 44 24 04          	mov    0x4(%esp),%eax
5011f2:	8b 48 14             	mov    0x14(%eax),%ecx
5011f5:	89 4c 24 10          	mov    %ecx,0x10(%esp)
5011f9:	33 ff                	xor    %edi,%edi
5011fb:	8b 44 24 04          	mov    0x4(%esp),%eax
5011ff:	8d 50 20             	lea    0x20(%eax),%edx
501202:	89 54 24 18          	mov    %edx,0x18(%esp)
501206:	e9 d4 00 00 00       	jmp    0x5012df
50120b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
50120f:	8b 01                	mov    (%ecx),%eax
501211:	89 44 24 0c          	mov    %eax,0xc(%esp)
501215:	8b 44 24 10          	mov    0x10(%esp),%eax
501219:	99                   	cltd
50121a:	f7 7c 24 0c          	idivl  0xc(%esp)
50121e:	89 44 24 10          	mov    %eax,0x10(%esp)
501222:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
501227:	74 0e                	je     0x501237
501229:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50122d:	8b 41 18             	mov    0x18(%ecx),%eax
501230:	81 04 b8 ff 00 00 00 	addl   $0xff,(%eax,%edi,4)
501237:	8b 54 24 04          	mov    0x4(%esp),%edx
50123b:	33 f6                	xor    %esi,%esi
50123d:	8b 4a 18             	mov    0x18(%edx),%ecx
501240:	8b d7                	mov    %edi,%edx
501242:	8b 04 b9             	mov    (%ecx,%edi,4),%eax
501245:	89 44 24 08          	mov    %eax,0x8(%esp)
501249:	8b 44 24 0c          	mov    0xc(%esp),%eax
50124d:	48                   	dec    %eax
50124e:	33 c9                	xor    %ecx,%ecx
501250:	50                   	push   %eax
501251:	8b 44 24 04          	mov    0x4(%esp),%eax
501255:	e8 52 fd ff ff       	call   0x500fac
50125a:	33 db                	xor    %ebx,%ebx
50125c:	8b 54 24 08          	mov    0x8(%esp),%edx
501260:	8b ca                	mov    %edx,%ecx
501262:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
501266:	3b c3                	cmp    %ebx,%eax
501268:	7d 18                	jge    0x501282
50126a:	8b 44 24 0c          	mov    0xc(%esp),%eax
50126e:	8b d7                	mov    %edi,%edx
501270:	48                   	dec    %eax
501271:	46                   	inc    %esi
501272:	50                   	push   %eax
501273:	8b ce                	mov    %esi,%ecx
501275:	8b 44 24 04          	mov    0x4(%esp),%eax
501279:	e8 2e fd ff ff       	call   0x500fac
50127e:	3b c3                	cmp    %ebx,%eax
501280:	7c e8                	jl     0x50126a
501282:	8b d6                	mov    %esi,%edx
501284:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
501288:	0f af 54 24 10       	imul   0x10(%esp),%edx
50128d:	88 11                	mov    %dl,(%ecx)
50128f:	43                   	inc    %ebx
501290:	ff 44 24 1c          	incl   0x1c(%esp)
501294:	81 fb ff 00 00 00    	cmp    $0xff,%ebx
50129a:	7e ca                	jle    0x501266
50129c:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
5012a1:	74 36                	je     0x5012d9
5012a3:	bb 01 00 00 00       	mov    $0x1,%ebx
5012a8:	8b 44 24 08          	mov    0x8(%esp),%eax
5012ac:	05 00 01 00 00       	add    $0x100,%eax
5012b1:	8b d3                	mov    %ebx,%edx
5012b3:	8b 4c 24 08          	mov    0x8(%esp),%ecx
5012b7:	f7 da                	neg    %edx
5012b9:	03 ca                	add    %edx,%ecx
5012bb:	8b 54 24 08          	mov    0x8(%esp),%edx
5012bf:	43                   	inc    %ebx
5012c0:	8a 12                	mov    (%edx),%dl
5012c2:	88 11                	mov    %dl,(%ecx)
5012c4:	8b 4c 24 08          	mov    0x8(%esp),%ecx
5012c8:	8a 91 ff 00 00 00    	mov    0xff(%ecx),%dl
5012ce:	88 10                	mov    %dl,(%eax)
5012d0:	40                   	inc    %eax
5012d1:	81 fb ff 00 00 00    	cmp    $0xff,%ebx
5012d7:	7e d8                	jle    0x5012b1
5012d9:	47                   	inc    %edi