503e0d:	8b 58 04             	mov    0x4(%eax),%ebx
503e10:	ff 53 20             	call   *0x20(%ebx)
503e13:	89 44 24 28          	mov    %eax,0x28(%esp)
503e17:	8b 44 24 40          	mov    0x40(%esp),%eax
503e1b:	8b 50 0c             	mov    0xc(%eax),%edx
503e1e:	c1 e2 02             	shl    $0x2,%edx
503e21:	01 54 24 28          	add    %edx,0x28(%esp)
503e25:	33 c9                	xor    %ecx,%ecx
503e27:	89 4c 24 48          	mov    %ecx,0x48(%esp)
503e2b:	eb 2b                	jmp    0x503e58
503e2d:	8b 44 24 24          	mov    0x24(%esp),%eax
503e31:	50                   	push   %eax
503e32:	6a 00                	push   $0x0
503e34:	8b 44 24 08          	mov    0x8(%esp),%eax
503e38:	8b 4c 24 20          	mov    0x20(%esp),%ecx
503e3c:	8b 54 24 10          	mov    0x10(%esp),%edx
503e40:	8b 58 04             	mov    0x4(%eax),%ebx
503e43:	8b 54 8a 48          	mov    0x48(%edx,%ecx,4),%edx
503e47:	33 c9                	xor    %ecx,%ecx
503e49:	ff 53 20             	call   *0x20(%ebx)
503e4c:	89 44 24 28          	mov    %eax,0x28(%esp)
503e50:	c7 44 24 48 01 00 00 	movl   $0x1,0x48(%esp)
503e57:	00
503e58:	8b 4c 24 18          	mov    0x18(%esp),%ecx
503e5c:	8b 44 24 08          	mov    0x8(%esp),%eax
503e60:	c1 e1 03             	shl    $0x3,%ecx
503e63:	8b 50 70             	mov    0x70(%eax),%edx
503e66:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
503e69:	03 d1                	add    %ecx,%edx
503e6b:	89 54 24 50          	mov    %edx,0x50(%esp)
503e6f:	8b 44 24 40          	mov    0x40(%esp),%eax
503e73:	8b 50 4c             	mov    0x4c(%eax),%edx
503e76:	89 54 24 54          	mov    %edx,0x54(%esp)
503e7a:	8b 4c 24 54          	mov    0x54(%esp),%ecx
503e7e:	0f b7 01             	movzwl (%ecx),%eax
503e81:	89 44 24 58          	mov    %eax,0x58(%esp)
503e85:	8b 54 24 54          	mov    0x54(%esp),%edx
503e89:	0f b7 4a 02          	movzwl 0x2(%edx),%ecx
503e8d:	89 4c 24 5c          	mov    %ecx,0x5c(%esp)
503e91:	8b 44 24 54          	mov    0x54(%esp),%eax
503e95:	0f b7 50 10          	movzwl 0x10(%eax),%edx
503e99:	89 54 24 64          	mov    %edx,0x64(%esp)
503e9d:	8b 4c 24 54          	mov    0x54(%esp),%ecx
503ea1:	0f b7 41 20          	movzwl 0x20(%ecx),%eax
503ea5:	89 44 24 6c          	mov    %eax,0x6c(%esp)
503ea9:	8b 54 24 54          	mov    0x54(%esp),%edx
503ead:	0f b7 4a 12          	movzwl 0x12(%edx),%ecx
503eb1:	89 4c 24 68          	mov    %ecx,0x68(%esp)
503eb5:	8b 44 24 54          	mov    0x54(%esp),%eax
503eb9:	0f b7 50 04          	movzwl 0x4(%eax),%edx
503ebd:	89 54 24 60          	mov    %edx,0x60(%esp)
503ec1:	8b 0c 24             	mov    (%esp),%ecx
503ec4:	8b 54 24 18          	mov    0x18(%esp),%edx
503ec8:	8b 81 b8 01 00 00    	mov    0x1b8(%ecx),%eax
503ece:	8b 4c 90 04          	mov    0x4(%eax,%edx,4),%ecx
503ed2:	89 4c 24 44          	mov    %ecx,0x44(%esp)
503ed6:	8b 44 24 04          	mov    0x4(%esp),%eax
503eda:	8b 54 24 18          	mov    0x18(%esp),%edx
503ede:	8b 0c 90             	mov    (%eax,%edx,4),%ecx
503ee1:	33 c0                	xor    %eax,%eax
503ee3:	89 4c 24 38          	mov    %ecx,0x38(%esp)
503ee7:	89 44 24 1c          	mov    %eax,0x1c(%esp)
503eeb:	8b 54 24 28          	mov    0x28(%esp),%edx
503eef:	8b ca                	mov    %edx,%ecx
503ef1:	89 8c 24 94 00 00 00 	mov    %ecx,0x94(%esp)
503ef8:	8b 44 24 1c          	mov    0x1c(%esp),%eax
503efc:	3b 44 24 20          	cmp    0x20(%esp),%eax
503f00:	0f 8d 0c 05 00 00    	jge    0x504412
503f06:	8b 94 24 94 00 00 00 	mov    0x94(%esp),%edx
503f0d:	8b 0a                	mov    (%edx),%ecx
503f0f:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
503f13:	83 7c 24 48 00       	cmpl   $0x0,0x48(%esp)
503f18:	74 11                	je     0x503f2b
503f1a:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
503f1f:	75 0a                	jne    0x503f2b
503f21:	8b 44 24 2c          	mov    0x2c(%esp),%eax
503f25:	89 44 24 30          	mov    %eax,0x30(%esp)
503f29:	eb 0e                	jmp    0x503f39
503f2b:	8b 94 24 94 00 00 00 	mov    0x94(%esp),%edx
503f32:	8b 4a fc             	mov    -0x4(%edx),%ecx
503f35:	89 4c 24 30          	mov    %ecx,0x30(%esp)
503f39:	83 7c 24 4c 00       	cmpl   $0x0,0x4c(%esp)
503f3e:	74 15                	je     0x503f55
503f40:	8b 44 24 20          	mov    0x20(%esp),%eax
503f44:	48                   	dec    %eax
503f45:	3b 44 24 1c          	cmp    0x1c(%esp),%eax
503f49:	75 0a                	jne    0x503f55
503f4b:	8b 54 24 2c          	mov    0x2c(%esp),%edx
503f4f:	89 54 24 34          	mov    %edx,0x34(%esp)
503f53:	eb 0e                	jmp    0x503f63
503f55:	8b 8c 24 94 00 00 00 	mov    0x94(%esp),%ecx
503f5c:	8b 41 04             	mov    0x4(%ecx),%eax
503f5f:	89 44 24 34          	mov    %eax,0x34(%esp)
503f63:	8b 54 24 30          	mov    0x30(%esp),%edx
503f67:	0f bf 0a             	movswl (%edx),%ecx
503f6a:	89 4c 24 78          	mov    %ecx,0x78(%esp)
503f6e:	89 4c 24 74          	mov    %ecx,0x74(%esp)
503f72:	89 4c 24 70          	mov    %ecx,0x70(%esp)
503f76:	8b 44 24 2c          	mov    0x2c(%esp),%eax
503f7a:	0f bf 10             	movswl (%eax),%edx
503f7d:	89 94 24 80 00 00 00 	mov    %edx,0x80(%esp)
503f84:	89 54 24 7c          	mov    %edx,0x7c(%esp)
503f88:	8b 44 24 34          	mov    0x34(%esp),%eax
503f8c:	8b f2                	mov    %edx,%esi
503f8e:	0f bf 10             	movswl (%eax),%edx
503f91:	89 94 24 8c 00 00 00 	mov    %edx,0x8c(%esp)
503f98:	89 94 24 88 00 00 00 	mov    %edx,0x88(%esp)
503f9f:	89 94 24 84 00 00 00 	mov    %edx,0x84(%esp)
503fa6:	33 c0                	xor    %eax,%eax
503fa8:	89 44 24 3c          	mov    %eax,0x3c(%esp)
503fac:	33 d2                	xor    %edx,%edx
503fae:	8b 4c 24 40          	mov    0x40(%esp),%ecx
503fb2:	8b 41 1c             	mov    0x1c(%ecx),%eax
503fb5:	48                   	dec    %eax
503fb6:	89 44 24 14          	mov    %eax,0x14(%esp)
503fba:	89 54 24 10          	mov    %edx,0x10(%esp)
503fbe:	8b 4c 24 10          	mov    0x10(%esp),%ecx
503fc2:	3b 4c 24 14          	cmp    0x14(%esp),%ecx
503fc6:	0f 87 1e 04 00 00    	ja     0x5043ea
503fcc:	8d 94 24 98 00 00 00 	lea    0x98(%esp),%edx
503fd3:	b9 01 00 00 00       	mov    $0x1,%ecx
503fd8:	8b 44 24 2c          	mov    0x2c(%esp),%eax
503fdc:	e8 ff 3b 00 00       	call   0x507be0
503fe1:	8b 44 24 10          	mov    0x10(%esp),%eax
503fe5:	3b 44 24 14          	cmp    0x14(%esp),%eax
503fe9:	73 33                	jae    0x50401e
503feb:	8b 54 24 30          	mov    0x30(%esp),%edx
503fef:	0f bf 8a 80 00 00 00 	movswl 0x80(%edx),%ecx
503ff6:	89 4c 24 78          	mov    %ecx,0x78(%esp)
503ffa:	8b 44 24 2c          	mov    0x2c(%esp),%eax
503ffe:	0f bf 90 80 00 00 00 	movswl 0x80(%eax),%edx
504005:	89 94 24 80 00 00 00 	mov    %edx,0x80(%esp)
50400c:	8b 4c 24 34          	mov    0x34(%esp),%ecx
504010:	0f bf 81 80 00 00 00 	movswl 0x80(%ecx),%eax
504017:	89 84 24 8c 00 00 00 	mov    %eax,0x8c(%esp)
50401e:	8b 54 24 50          	mov    0x50(%esp),%edx
504022:	8b 5a 04             	mov    0x4(%edx),%ebx
504025:	85 db                	test   %ebx,%ebx
504027:	0f 84 93 00 00 00    	je     0x5040c0
50402d:	66 83 bc 24 9a 00 00 	cmpw   $0x0,0x9a(%esp)
504034:	00 00
504036:	0f 85 84 00 00 00    	jne    0x5040c0
50403c:	8b ce                	mov    %esi,%ecx
50403e:	2b 8c 24 80 00 00 00 	sub    0x80(%esp),%ecx
504045:	0f af 4c 24 58       	imul   0x58(%esp),%ecx
50404a:	c1 e1 02             	shl    $0x2,%ecx
50404d:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
504050:	85 c9                	test   %ecx,%ecx
504052:	7c 32                	jl     0x504086
504054:	8b 44 24 5c          	mov    0x5c(%esp),%eax
504058:	8b 54 24 5c          	mov    0x5c(%esp),%edx
50405c:	c1 e0 07             	shl    $0x7,%eax
50405f:	c1 e2 08             	shl    $0x8,%edx
504062:	03 c1                	add    %ecx,%eax
504064:	8b ca                	mov    %edx,%ecx
504066:	99                   	cltd
504067:	f7 f9                	idiv   %ecx
504069:	85 db                	test   %ebx,%ebx
50406b:	7e 4b                	jle    0x5040b8
50406d:	8b cb                	mov    %ebx,%ecx
50406f:	ba 01 00 00 00       	mov    $0x1,%edx
504074:	d3 e2                	shl    %cl,%edx
504076:	3b c2                	cmp    %edx,%eax
504078:	7c 3e                	jl     0x5040b8
50407a:	8b cb                	mov    %ebx,%ecx
50407c:	b8 01 00 00 00       	mov    $0x1,%eax
504081:	d3 e0                	shl    %cl,%eax
504083:	48                   	dec    %eax
504084:	eb 32                	jmp    0x5040b8
504086:	8b 44 24 5c          	mov    0x5c(%esp),%eax
50408a:	8b 54 24 5c          	mov    0x5c(%esp),%edx
50408e:	c1 e0 07             	shl    $0x7,%eax
504091:	c1 e2 08             	shl    $0x8,%edx
504094:	2b c1                	sub    %ecx,%eax
504096:	8b ca                	mov    %edx,%ecx
504098:	99                   	cltd
504099:	f7 f9                	idiv   %ecx
50409b:	85 db                	test   %ebx,%ebx
50409d:	7e 17                	jle    0x5040b6
50409f:	8b cb                	mov    %ebx,%ecx
5040a1:	ba 01 00 00 00       	mov    $0x1,%edx
5040a6:	d3 e2                	shl    %cl,%edx
5040a8:	3b c2                	cmp    %edx,%eax
5040aa:	7c 0a                	jl     0x5040b6
5040ac:	8b cb                	mov    %ebx,%ecx
5040ae:	b8 01 00 00 00       	mov    $0x1,%eax
5040b3:	d3 e0                	shl    %cl,%eax
5040b5:	48                   	dec    %eax
5040b6:	f7 d8                	neg    %eax
5040b8:	66 89 84 24 9a 00 00 	mov    %ax,0x9a(%esp)
5040bf:	00
5040c0:	8b 54 24 50          	mov    0x50(%esp),%edx
5040c4:	8b 5a 08             	mov    0x8(%edx),%ebx
5040c7:	85 db                	test   %ebx,%ebx
5040c9:	0f 84 96 00 00 00    	je     0x504165
5040cf:	66 83 bc 24 a8 00 00 	cmpw   $0x0,0xa8(%esp)
5040d6:	00 00
5040d8:	0f 85 87 00 00 00    	jne    0x504165
5040de:	8b 44 24 74          	mov    0x74(%esp),%eax
5040e2:	2b 84 24 88 00 00 00 	sub    0x88(%esp),%eax
5040e9:	f7 6c 24 58          	imull  0x58(%esp)
5040ed:	8b c8                	mov    %eax,%ecx
5040ef:	c1 e1 02             	shl    $0x2,%ecx
5040f2:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
5040f5:	85 c9                	test   %ecx,%ecx
5040f7:	7c 32                	jl     0x50412b
5040f9:	8b 44 24 64          	mov    0x64(%esp),%eax
5040fd:	8b 54 24 64          	mov    0x64(%esp),%edx
504101:	c1 e0 07             	shl    $0x7,%eax
504104:	c1 e2 08             	shl    $0x8,%edx
504107:	03 c1                	add    %ecx,%eax
504109:	8b ca                	mov    %edx,%ecx
50410b:	99                   	cltd
50410c:	f7 f9                	idiv   %ecx
50410e:	85 db                	test   %ebx,%ebx
504110:	7e 4b                	jle    0x50415d
504112:	8b cb                	mov    %ebx,%ecx
504114:	ba 01 00 00 00       	mov    $0x1,%edx
504119:	d3 e2                	shl    %cl,%edx
50411b:	3b c2                	cmp    %edx,%eax
50411d:	7c 3e                	jl     0x50415d
50411f:	8b cb                	mov    %ebx,%ecx
504121:	b8 01 00 00 00       	mov    $0x1,%eax
504126:	d3 e0                	shl    %cl,%eax
504128:	48                   	dec    %eax
504129:	eb 32                	jmp    0x50415d
50412b:	8b 44 24 64          	mov    0x64(%esp),%eax
50412f:	8b 54 24 64          	mov    0x64(%esp),%edx
504133:	c1 e0 07             	shl    $0x7,%eax
504136:	c1 e2 08             	shl    $0x8,%edx
504139:	2b c1                	sub    %ecx,%eax
50413b:	8b ca                	mov    %edx,%ecx
50413d:	99                   	cltd
50413e:	f7 f9                	idiv   %ecx
504140:	85 db                	test   %ebx,%ebx
504142:	7e 17                	jle    0x50415b
504144:	8b cb                	mov    %ebx,%ecx
504146:	ba 01 00 00 00       	mov    $0x1,%edx
50414b:	d3 e2                	shl    %cl,%edx
50414d:	3b c2                	cmp    %edx,%eax
50414f:	7c 0a                	jl     0x50415b
504151:	8b cb                	mov    %ebx,%ecx
504153:	b8 01 00 00 00       	mov    $0x1,%eax
504158:	d3 e0                	shl    %cl,%eax
50415a:	48                   	dec    %eax
50415b:	f7 d8                	neg    %eax
50415d:	66 89 84 24 a8 00 00 	mov    %ax,0xa8(%esp)
504164:	00
504165:	8b 54 24 50          	mov    0x50(%esp),%edx
504169:	8b 5a 0c             	mov    0xc(%edx),%ebx
50416c:	85 db                	test   %ebx,%ebx
50416e:	0f 84 99 00 00 00    	je     0x50420d
504174:	66 83 bc 24 b8 00 00 	cmpw   $0x0,0xb8(%esp)
50417b:	00 00
50417d:	0f 85 8a 00 00 00    	jne    0x50420d
504183:	8b 44 24 74          	mov    0x74(%esp),%eax
504187:	8b 54 24 7c          	mov    0x7c(%esp),%edx
50418b:	03 84 24 88 00 00 00 	add    0x88(%esp),%eax
504192:	03 d2                	add    %edx,%edx
504194:	2b c2                	sub    %edx,%eax
504196:	f7 6c 24 58          	imull  0x58(%esp)
50419a:	8d 0c c0             	lea    (%eax,%eax,8),%ecx
50419d:	85 c9                	test   %ecx,%ecx
50419f:	7c 32                	jl     0x5041d3
5041a1:	8b 44 24 6c          	mov    0x6c(%esp),%eax
5041a5:	8b 54 24 6c          	mov    0x6c(%esp),%edx
5041a9:	c1 e0 07             	shl    $0x7,%eax
5041ac:	c1 e2 08             	shl    $0x8,%edx
5041af:	03 c1                	add    %ecx,%eax
5041b1:	8b ca                	mov    %edx,%ecx
5041b3:	99                   	cltd
5041b4:	f7 f9                	idiv   %ecx
5041b6:	85 db                	test   %ebx,%ebx
5041b8:	7e 4b                	jle    0x504205
5041ba:	8b cb                	mov    %ebx,%ecx
5041bc:	ba 01 00 00 00       	mov    $0x1,%edx
5041c1:	d3 e2                	shl    %cl,%edx
5041c3:	3b c2                	cmp    %edx,%eax
5041c5:	7c 3e                	jl     0x504205
5041c7:	8b cb                	mov    %ebx,%ecx
5041c9:	b8 01 00 00 00       	mov    $0x1,%eax
5041ce:	d3 e0                	shl    %cl,%eax
5041d0:	48                   	dec    %eax
5041d1:	eb 32                	jmp    0x504205
5041d3:	8b 44 24 6c          	mov    0x6c(%esp),%eax
5041d7:	8b 54 24 6c          	mov    0x6c(%esp),%edx
5041db:	c1 e0 07             	shl    $0x7,%eax
5041de:	c1 e2 08             	shl    $0x8,%edx
5041e1:	2b c1                	sub    %ecx,%eax
5041e3:	8b ca                	mov    %edx,%ecx
5041e5:	99                   	cltd
5041e6:	f7 f9                	idiv   %ecx
5041e8:	85 db                	test   %ebx,%ebx
5041ea:	7e 17                	jle    0x504203
5041ec:	8b cb                	mov    %ebx,%ecx
5041ee:	ba 01 00 00 00       	mov    $0x1,%edx
5041f3:	d3 e2                	shl    %cl,%edx
5041f5:	3b c2                	cmp    %edx,%eax
5041f7:	7c 0a                	jl     0x504203
5041f9:	8b cb                	mov    %ebx,%ecx
5041fb:	b8 01 00 00 00       	mov    $0x1,%eax
504200:	d3 e0                	shl    %cl,%eax
504202:	48                   	dec    %eax
504203:	f7 d8                	neg    %eax
504205:	66 89 84 24 b8 00 00 	mov    %ax,0xb8(%esp)
50420c:	00
50420d:	8b 54 24 50          	mov    0x50(%esp),%edx
504211:	8b 5a 10             	mov    0x10(%edx),%ebx
504214:	85 db                	test   %ebx,%ebx
504216:	0f 84 9c 00 00 00    	je     0x5042b8
50421c:	66 83 bc 24 aa 00 00 	cmpw   $0x0,0xaa(%esp)
504223:	00 00
504225:	0f 85 8d 00 00 00    	jne    0x5042b8
50422b:	8b 44 24 70          	mov    0x70(%esp),%eax
50422f:	2b 44 24 78          	sub    0x78(%esp),%eax
504233:	2b 84 24 84 00 00 00 	sub    0x84(%esp),%eax
50423a:	03 84 24 8c 00 00 00 	add    0x8c(%esp),%eax
504241:	f7 6c 24 58          	imull  0x58(%esp)
504245:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
504248:	85 c9                	test   %ecx,%ecx
50424a:	7c 32                	jl     0x50427e
50424c:	8b 44 24 68          	mov    0x68(%esp),%eax
504250:	8b 54 24 68          	mov    0x68(%esp),%edx
504254:	c1 e0 07             	shl    $0x7,%eax
504257:	c1 e2 08             	shl    $0x8,%edx
50425a:	03 c1                	add    %ecx,%eax
50425c:	8b ca                	mov    %edx,%ecx
50425e:	99                   	cltd
50425f:	f7 f9                	idiv   %ecx
504261:	85 db                	test   %ebx,%ebx
504263:	7e 4b                	jle    0x5042b0
504265:	8b cb                	mov    %ebx,%ecx
504267:	ba 01 00 00 00       	mov    $0x1,%edx
50426c:	d3 e2                	shl    %cl,%edx
50426e:	3b c2                	cmp    %edx,%eax
504270:	7c 3e                	jl     0x5042b0
504272:	8b cb                	mov    %ebx,%ecx
504274:	b8 01 00 00 00       	mov    $0x1,%eax
504279:	d3 e0                	shl    %cl,%eax
50427b:	48                   	dec    %eax
50427c:	eb 32                	jmp    0x5042b0
50427e:	8b 44 24 68          	mov    0x68(%esp),%eax
504282:	8b 54 24 68          	mov    0x68(%esp),%edx
504286:	c1 e0 07             	shl    $0x7,%eax
504289:	c1 e2 08             	shl    $0x8,%edx
50428c:	2b c1                	sub    %ecx,%eax
50428e:	8b ca                	mov    %edx,%ecx
504290:	99                   	cltd
504291:	f7 f9                	idiv   %ecx
504293:	85 db                	test   %ebx,%ebx