502ce3:	b9 2c 00 00 00       	mov    $0x2c,%ecx
502ce8:	ba 01 00 00 00       	mov    $0x1,%edx
502ced:	ff 16                	call   *(%esi)
502cef:	8b f0                	mov    %eax,%esi
502cf1:	33 c0                	xor    %eax,%eax
502cf3:	89 b3 c4 01 00 00    	mov    %esi,0x1c4(%ebx)
502cf9:	33 d2                	xor    %edx,%edx
502cfb:	c7 06 b0 2b 50 00    	movl   $0x502bb0,(%esi)
502d01:	c7 46 0c c8 2c 50 00 	movl   $0x502cc8,0xc(%esi)
502d08:	89 46 20             	mov    %eax,0x20(%esi)
502d0b:	89 56 28             	mov    %edx,0x28(%esi)
502d0e:	83 7b 74 03          	cmpl   $0x3,0x74(%ebx)
502d12:	74 0f                	je     0x502d23
502d14:	8b 0b                	mov    (%ebx),%ecx
502d16:	8b c3                	mov    %ebx,%eax
502d18:	c7 41 14 2e 00 00 00 	movl   $0x2e,0x14(%ecx)
502d1f:	8b 10                	mov    (%eax),%edx
502d21:	ff 12                	call   *(%edx)
502d23:	8b c3                	mov    %ebx,%eax
502d25:	b9 80 00 00 00       	mov    $0x80,%ecx
502d2a:	ba 01 00 00 00       	mov    $0x1,%edx
502d2f:	8b 78 04             	mov    0x4(%eax),%edi
502d32:	ff 17                	call   *(%edi)
502d34:	89 46 18             	mov    %eax,0x18(%esi)
502d37:	33 ff                	xor    %edi,%edi
502d39:	8b c3                	mov    %ebx,%eax
502d3b:	b9 00 10 00 00       	mov    $0x1000,%ecx
502d40:	ba 01 00 00 00       	mov    $0x1,%edx
502d45:	8b 68 04             	mov    0x4(%eax),%ebp
502d48:	ff 55 04             	call   *0x4(%ebp)
502d4b:	8b 56 18             	mov    0x18(%esi),%edx
502d4e:	89 04 ba             	mov    %eax,(%edx,%edi,4)
502d51:	47                   	inc    %edi
502d52:	83 ff 20             	cmp    $0x20,%edi
502d55:	7c e2                	jl     0x502d39
502d57:	c7 46 1c 01 00 00 00 	movl   $0x1,0x1c(%esi)
502d5e:	83 7b 68 00          	cmpl   $0x0,0x68(%ebx)
502d62:	74 55                	je     0x502db9
502d64:	8b 7b 5c             	mov    0x5c(%ebx),%edi
502d67:	83 ff 08             	cmp    $0x8,%edi
502d6a:	7d 16                	jge    0x502d82
502d6c:	8b 03                	mov    (%ebx),%eax
502d6e:	c7 40 14 37 00 00 00 	movl   $0x37,0x14(%eax)
502d75:	c7 40 18 08 00 00 00 	movl   $0x8,0x18(%eax)
502d7c:	8b c3                	mov    %ebx,%eax
502d7e:	8b 10                	mov    (%eax),%edx
502d80:	ff 12                	call   *(%edx)
502d82:	81 ff 00 01 00 00    	cmp    $0x100,%edi
502d88:	7e 16                	jle    0x502da0
502d8a:	8b 03                	mov    (%ebx),%eax
502d8c:	c7 40 14 38 00 00 00 	movl   $0x38,0x14(%eax)
502d93:	c7 40 18 00 01 00 00 	movl   $0x100,0x18(%eax)
502d9a:	8b c3                	mov    %ebx,%eax
502d9c:	8b 10                	mov    (%eax),%edx
502d9e:	ff 12                	call   *(%edx)
502da0:	8b c3                	mov    %ebx,%eax
502da2:	6a 03                	push   $0x3
502da4:	8b cf                	mov    %edi,%ecx
502da6:	ba 01 00 00 00       	mov    $0x1,%edx
502dab:	8b 68 04             	mov    0x4(%eax),%ebp
502dae:	ff 55 08             	call   *0x8(%ebp)
502db1:	89 46 10             	mov    %eax,0x10(%esi)
502db4:	89 7e 14             	mov    %edi,0x14(%esi)
502db7:	eb 05                	jmp    0x502dbe
502db9:	33 c0                	xor    %eax,%eax
502dbb:	89 46 10             	mov    %eax,0x10(%esi)
502dbe:	83 7b 54 00          	cmpl   $0x0,0x54(%ebx)
502dc2:	74 07                	je     0x502dcb
502dc4:	c7 43 54 02 00 00 00 	movl   $0x2,0x54(%ebx)
502dcb:	83 7b 54 02          	cmpl   $0x2,0x54(%ebx)
502dcf:	75 22                	jne    0x502df3
502dd1:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
502dd4:	8b c3                	mov    %ebx,%eax
502dd6:	03 c9                	add    %ecx,%ecx
502dd8:	ba 01 00 00 00       	mov    $0x1,%edx
502ddd:	8b 78 04             	mov    0x4(%eax),%edi
502de0:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
502de3:	83 c1 0c             	add    $0xc,%ecx
502de6:	ff 57 04             	call   *0x4(%edi)
502de9:	89 46 20             	mov    %eax,0x20(%esi)
502dec:	8b c3                	mov    %ebx,%eax
502dee:	e8 01 fd ff ff       	call   0x502af4
502df3:	5d                   	pop    %ebp
502df4:	5f                   	pop    %edi
502df5:	5e                   	pop    %esi
502df6:	5b                   	pop    %ebx
502df7:	c3                   	ret
502df8:	53                   	push   %ebx
502df9:	56                   	push   %esi
502dfa:	8b d8                	mov    %eax,%ebx
502dfc:	57                   	push   %edi
502dfd:	83 c4 f0             	add    $0xfffffff0,%esp
502e00:	8b 83 a0 01 00 00    	mov    0x1a0(%ebx),%eax
502e06:	89 04 24             	mov    %eax,(%esp)
502e09:	8b c3                	mov    %ebx,%eax
502e0b:	8b 93 34 01 00 00    	mov    0x134(%ebx),%edx
502e11:	89 54 24 08          	mov    %edx,0x8(%esp)
502e15:	ba 01 00 00 00       	mov    $0x1,%edx
502e1a:	8b 4b 20             	mov    0x20(%ebx),%ecx
502e1d:	8b 70 04             	mov    0x4(%eax),%esi
502e20:	03 c9                	add    %ecx,%ecx
502e22:	c1 e1 02             	shl    $0x2,%ecx
502e25:	ff 16                	call   *(%esi)
502e27:	8b f0                	mov    %eax,%esi
502e29:	8b 04 24             	mov    (%esp),%eax
502e2c:	89 70 38             	mov    %esi,0x38(%eax)
502e2f:	8b 53 20             	mov    0x20(%ebx),%edx
502e32:	8b 0c 24             	mov    (%esp),%ecx
502e35:	c1 e2 02             	shl    $0x2,%edx
502e38:	03 f2                	add    %edx,%esi
502e3a:	89 71 3c             	mov    %esi,0x3c(%ecx)
502e3d:	33 f6                	xor    %esi,%esi
502e3f:	8b 83 d4 00 00 00    	mov    0xd4(%ebx),%eax
502e45:	89 44 24 0c          	mov    %eax,0xc(%esp)
502e49:	eb 68                	jmp    0x502eb3
502e4b:	8b 54 24 0c          	mov    0xc(%esp),%edx
502e4f:	8b 42 0c             	mov    0xc(%edx),%eax
502e52:	8b 54 24 0c          	mov    0xc(%esp),%edx
502e56:	f7 6a 24             	imull  0x24(%edx)
502e59:	99                   	cltd
502e5a:	f7 bb 34 01 00 00    	idivl  0x134(%ebx)
502e60:	89 44 24 04          	mov    %eax,0x4(%esp)
502e64:	8b c3                	mov    %ebx,%eax
502e66:	8b 4c 24 08          	mov    0x8(%esp),%ecx
502e6a:	ba 01 00 00 00       	mov    $0x1,%edx
502e6f:	83 c1 04             	add    $0x4,%ecx
502e72:	8b 78 04             	mov    0x4(%eax),%edi
502e75:	0f af 4c 24 04       	imul   0x4(%esp),%ecx
502e7a:	03 c9                	add    %ecx,%ecx
502e7c:	c1 e1 02             	shl    $0x2,%ecx
502e7f:	ff 17                	call   *(%edi)
502e81:	8b 54 24 04          	mov    0x4(%esp),%edx
502e85:	8b 0c 24             	mov    (%esp),%ecx
502e88:	c1 e2 02             	shl    $0x2,%edx
502e8b:	03 c2                	add    %edx,%eax
502e8d:	8b 51 38             	mov    0x38(%ecx),%edx
502e90:	89 04 b2             	mov    %eax,(%edx,%esi,4)
502e93:	8b 4c 24 08          	mov    0x8(%esp),%ecx
502e97:	8b 14 24             	mov    (%esp),%edx
502e9a:	83 c1 04             	add    $0x4,%ecx
502e9d:	0f af 4c 24 04       	imul   0x4(%esp),%ecx
502ea2:	c1 e1 02             	shl    $0x2,%ecx
502ea5:	03 c1                	add    %ecx,%eax
502ea7:	8b 4a 3c             	mov    0x3c(%edx),%ecx
502eaa:	89 04 b1             	mov    %eax,(%ecx,%esi,4)
502ead:	46                   	inc    %esi
502eae:	83 44 24 0c 54       	addl   $0x54,0xc(%esp)
502eb3:	3b 73 20             	cmp    0x20(%ebx),%esi
502eb6:	7c 93                	jl     0x502e4b
502eb8:	83 c4 10             	add    $0x10,%esp
502ebb:	5f                   	pop    %edi
502ebc:	5e                   	pop    %esi
502ebd:	5b                   	pop    %ebx
502ebe:	c3                   	ret
502ebf:	90                   	nop
502ec0:	53                   	push   %ebx
502ec1:	56                   	push   %esi
502ec2:	57                   	push   %edi
502ec3:	55                   	push   %ebp
502ec4:	83 c4 dc             	add    $0xffffffdc,%esp
502ec7:	89 04 24             	mov    %eax,(%esp)
502eca:	8b 04 24             	mov    (%esp),%eax
502ecd:	8b 90 a0 01 00 00    	mov    0x1a0(%eax),%edx
502ed3:	33 c0                	xor    %eax,%eax
502ed5:	89 54 24 04          	mov    %edx,0x4(%esp)
502ed9:	8b 0c 24             	mov    (%esp),%ecx
502edc:	8b 89 34 01 00 00    	mov    0x134(%ecx),%ecx
502ee2:	89 44 24 08          	mov    %eax,0x8(%esp)
502ee6:	8b 14 24             	mov    (%esp),%edx
502ee9:	8b 82 d4 00 00 00    	mov    0xd4(%edx),%eax
502eef:	89 44 24 0c          	mov    %eax,0xc(%esp)
502ef3:	8b 54 24 04          	mov    0x4(%esp),%edx
502ef7:	8d 42 08             	lea    0x8(%edx),%eax
502efa:	89 44 24 14          	mov    %eax,0x14(%esp)
502efe:	e9 ed 00 00 00       	jmp    0x502ff0
502f03:	8b 54 24 0c          	mov    0xc(%esp),%edx
502f07:	8b 74 24 08          	mov    0x8(%esp),%esi
502f0b:	8b 42 0c             	mov    0xc(%edx),%eax
502f0e:	8b 54 24 0c          	mov    0xc(%esp),%edx
502f12:	f7 6a 24             	imull  0x24(%edx)
502f15:	8b 14 24             	mov    (%esp),%edx
502f18:	8b 9a 34 01 00 00    	mov    0x134(%edx),%ebx
502f1e:	99                   	cltd
502f1f:	f7 fb                	idiv   %ebx
502f21:	8b d0                	mov    %eax,%edx
502f23:	8b 44 24 04          	mov    0x4(%esp),%eax
502f27:	8b 5c 24 08          	mov    0x8(%esp),%ebx
502f2b:	8b 40 38             	mov    0x38(%eax),%eax
502f2e:	8b 1c 98             	mov    (%eax,%ebx,4),%ebx
502f31:	8b 44 24 04          	mov    0x4(%esp),%eax
502f35:	8b fb                	mov    %ebx,%edi
502f37:	8b 40 3c             	mov    0x3c(%eax),%eax
502f3a:	8b 34 b0             	mov    (%eax,%esi,4),%esi
502f3d:	8b 44 24 14          	mov    0x14(%esp),%eax
502f41:	8b 00                	mov    (%eax),%eax
502f43:	89 44 24 10          	mov    %eax,0x10(%esp)
502f47:	89 7c 24 20          	mov    %edi,0x20(%esp)
502f4b:	8b fe                	mov    %esi,%edi
502f4d:	33 c0                	xor    %eax,%eax
502f4f:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
502f53:	8b 7c 24 10          	mov    0x10(%esp),%edi
502f57:	89 7c 24 18          	mov    %edi,0x18(%esp)
502f5b:	eb 24                	jmp    0x502f81
502f5d:	8b 7c 24 18          	mov    0x18(%esp),%edi
502f61:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
502f65:	40                   	inc    %eax
502f66:	8b 3f                	mov    (%edi),%edi
502f68:	89 7d 00             	mov    %edi,0x0(%ebp)
502f6b:	8b 6c 24 20          	mov    0x20(%esp),%ebp
502f6f:	89 7d 00             	mov    %edi,0x0(%ebp)
502f72:	83 44 24 20 04       	addl   $0x4,0x20(%esp)
502f77:	83 44 24 1c 04       	addl   $0x4,0x1c(%esp)
502f7c:	83 44 24 18 04       	addl   $0x4,0x18(%esp)
502f81:	8d 79 02             	lea    0x2(%ecx),%edi
502f84:	0f af fa             	imul   %edx,%edi
502f87:	3b c7                	cmp    %edi,%eax
502f89:	7c d2                	jl     0x502f5d
502f8b:	33 c0                	xor    %eax,%eax
502f8d:	eb 37                	jmp    0x502fc6
502f8f:	8b fa                	mov    %edx,%edi
502f91:	8b 6c 24 10          	mov    0x10(%esp),%ebp
502f95:	0f af f9             	imul   %ecx,%edi
502f98:	03 f8                	add    %eax,%edi
502f9a:	ff 74 bd 00          	push   0x0(%ebp,%edi,4)
502f9e:	8d 79 fe             	lea    -0x2(%ecx),%edi
502fa1:	5d                   	pop    %ebp
502fa2:	0f af fa             	imul   %edx,%edi
502fa5:	03 f8                	add    %eax,%edi
502fa7:	89 2c be             	mov    %ebp,(%esi,%edi,4)
502faa:	8d 79 fe             	lea    -0x2(%ecx),%edi
502fad:	0f af fa             	imul   %edx,%edi
502fb0:	03 f8                	add    %eax,%edi
502fb2:	8b 6c 24 10          	mov    0x10(%esp),%ebp
502fb6:	ff 74 bd 00          	push   0x0(%ebp,%edi,4)
502fba:	8b fa                	mov    %edx,%edi
502fbc:	5d                   	pop    %ebp
502fbd:	0f af f9             	imul   %ecx,%edi
502fc0:	03 f8                	add    %eax,%edi
502fc2:	40                   	inc    %eax
502fc3:	89 2c be             	mov    %ebp,(%esi,%edi,4)
502fc6:	8b fa                	mov    %edx,%edi
502fc8:	03 ff                	add    %edi,%edi
502fca:	3b c7                	cmp    %edi,%eax
502fcc:	7c c1                	jl     0x502f8f
502fce:	33 c0                	xor    %eax,%eax
502fd0:	3b d0                	cmp    %eax,%edx
502fd2:	7e 0e                	jle    0x502fe2
502fd4:	8b f0                	mov    %eax,%esi
502fd6:	2b f2                	sub    %edx,%esi
502fd8:	8b 3b                	mov    (%ebx),%edi
502fda:	89 3c b3             	mov    %edi,(%ebx,%esi,4)
502fdd:	40                   	inc    %eax
502fde:	3b d0                	cmp    %eax,%edx
502fe0:	7f f2                	jg     0x502fd4
502fe2:	83 44 24 14 04       	addl   $0x4,0x14(%esp)
502fe7:	ff 44 24 08          	incl   0x8(%esp)
502feb:	83 44 24 0c 54       	addl   $0x54,0xc(%esp)
502ff0:	8b 04 24             	mov    (%esp),%eax
502ff3:	8b 50 20             	mov    0x20(%eax),%edx
502ff6:	3b 54 24 08          	cmp    0x8(%esp),%edx
502ffa:	0f 8f 03 ff ff ff    	jg     0x502f03
503000:	83 c4 24             	add    $0x24,%esp
503003:	5d                   	pop    %ebp
503004:	5f                   	pop    %edi
503005:	5e                   	pop    %esi
503006:	5b                   	pop    %ebx
503007:	c3                   	ret
503008:	53                   	push   %ebx
503009:	56                   	push   %esi
50300a:	57                   	push   %edi
50300b:	55                   	push   %ebp
50300c:	83 c4 e8             	add    $0xffffffe8,%esp
50300f:	89 04 24             	mov    %eax,(%esp)
503012:	8b 04 24             	mov    (%esp),%eax
503015:	8b 90 a0 01 00 00    	mov    0x1a0(%eax),%edx
50301b:	33 c0                	xor    %eax,%eax
50301d:	89 54 24 04          	mov    %edx,0x4(%esp)
503021:	8b 0c 24             	mov    (%esp),%ecx
503024:	8b 89 34 01 00 00    	mov    0x134(%ecx),%ecx
50302a:	89 44 24 08          	mov    %eax,0x8(%esp)
50302e:	8b 14 24             	mov    (%esp),%edx
503031:	8b 82 d4 00 00 00    	mov    0xd4(%edx),%eax
503037:	89 44 24 0c          	mov    %eax,0xc(%esp)
50303b:	e9 ac 00 00 00       	jmp    0x5030ec
503040:	8b 54 24 0c          	mov    0xc(%esp),%edx
503044:	8b 74 24 08          	mov    0x8(%esp),%esi
503048:	8b 42 0c             	mov    0xc(%edx),%eax
50304b:	8b 54 24 0c          	mov    0xc(%esp),%edx
50304f:	f7 6a 24             	imull  0x24(%edx)
503052:	8b 14 24             	mov    (%esp),%edx
503055:	8b 9a 34 01 00 00    	mov    0x134(%edx),%ebx
50305b:	99                   	cltd
50305c:	f7 fb                	idiv   %ebx
50305e:	8b d0                	mov    %eax,%edx
503060:	8b 44 24 04          	mov    0x4(%esp),%eax
503064:	8b 5c 24 08          	mov    0x8(%esp),%ebx
503068:	8b 40 38             	mov    0x38(%eax),%eax
50306b:	8b 1c 98             	mov    (%eax,%ebx,4),%ebx
50306e:	8b 44 24 04          	mov    0x4(%esp),%eax
503072:	8b 40 3c             	mov    0x3c(%eax),%eax
503075:	8b 34 b0             	mov    (%eax,%esi,4),%esi
503078:	33 c0                	xor    %eax,%eax
50307a:	8b fe                	mov    %esi,%edi
50307c:	3b d0                	cmp    %eax,%edx
50307e:	89 7c 24 14          	mov    %edi,0x14(%esp)
503082:	8b fb                	mov    %ebx,%edi
503084:	89 7c 24 10          	mov    %edi,0x10(%esp)
503088:	7e 59                	jle    0x5030e3
50308a:	8d 79 01             	lea    0x1(%ecx),%edi
50308d:	0f af fa             	imul   %edx,%edi
503090:	03 f8                	add    %eax,%edi
503092:	ff 34 bb             	push   (%ebx,%edi,4)
503095:	8b f8                	mov    %eax,%edi
503097:	2b fa                	sub    %edx,%edi
503099:	5d                   	pop    %ebp
50309a:	89 2c bb             	mov    %ebp,(%ebx,%edi,4)
50309d:	8d 79 01             	lea    0x1(%ecx),%edi
5030a0:	0f af fa             	imul   %edx,%edi
5030a3:	03 f8                	add    %eax,%edi
5030a5:	ff 34 be             	push   (%esi,%edi,4)
5030a8:	8b f8                	mov    %eax,%edi
5030aa:	2b fa                	sub    %edx,%edi
5030ac:	5d                   	pop    %ebp
5030ad:	89 2c be             	mov    %ebp,(%esi,%edi,4)
5030b0:	8d 79 02             	lea    0x2(%ecx),%edi
5030b3:	0f af fa             	imul   %edx,%edi
5030b6:	03 f8                	add    %eax,%edi
5030b8:	8b 6c 24 10          	mov    0x10(%esp),%ebp
5030bc:	8b 6d 00             	mov    0x0(%ebp),%ebp
5030bf:	89 2c bb             	mov    %ebp,(%ebx,%edi,4)
5030c2:	8d 79 02             	lea    0x2(%ecx),%edi
5030c5:	0f af fa             	imul   %edx,%edi
5030c8:	03 f8                	add    %eax,%edi
5030ca:	8b 6c 24 14          	mov    0x14(%esp),%ebp
5030ce:	8b 6d 00             	mov    0x0(%ebp),%ebp
5030d1:	89 2c be             	mov    %ebp,(%esi,%edi,4)
5030d4:	40                   	inc    %eax
5030d5:	83 44 24 14 04       	addl   $0x4,0x14(%esp)
5030da:	83 44 24 10 04       	addl   $0x4,0x10(%esp)
5030df:	3b d0                	cmp    %eax,%edx
5030e1:	7f a7                	jg     0x50308a
5030e3:	ff 44 24 08          	incl   0x8(%esp)
5030e7:	83 44 24 0c 54       	addl   $0x54,0xc(%esp)
5030ec:	8b 04 24             	mov    (%esp),%eax
5030ef:	8b 50 20             	mov    0x20(%eax),%edx
5030f2:	3b 54 24 08          	cmp    0x8(%esp),%edx
5030f6:	0f 8f 44 ff ff ff    	jg     0x503040
5030fc:	83 c4 18             	add    $0x18,%esp
5030ff:	5d                   	pop    %ebp
503100:	5f                   	pop    %edi